Hello all The Maven folder structure differs from the folder structure expected by standard javac and javadoc tools:
* *Maven:* <maven-module-artifactIDs>/src/main/java/<packages>/<classes> * *Java:* <jigsaw.module.names>/<packages>/<classes> I understand that Maven can still build a Java 9 project by compiling each module with a separated invocation of javac, and I have seen the "do and don't with Java 9" recommendation to not change the Maven folder structure (slide 38 of [1]). Nevertheless I'm considering to try changing some projects folder structure to match the Java 9 convention. Reasons are: * We now have two conflicting conventions: Maven and Java 9. I'm tented to choose the one used by the most "fundamental" tool for the reasons below. * I have not yet been able to generate aggregated Javadoc for a project following Maven directory structure. Even when using javadoc on the command-line, the tools insists for having a directory structure matching the Java 9 conventions (maybe I have not found the right command-line options yet). * Even if the above-cited problem can be solved by appropriate command-line options, complying with Java 9 conventions would make easier to use javac, javadoc or other tools on the command line for multi-modules projects (even if Maven still the primary build tool, I sometime want to do experiments manually). * Even if Maven is the "official" build tools in a project, I like to provide NetBeans project files (the Ant script generated by NetBeans) for convenience. I know that NetBeans has excellent Maven integration, but NetBeans projects are still faster to build, execute and debug, allow to configure hints, to customize spell-check entries, to specify the copyright header in new files, etc. So I develop with NetBeans and launch Maven only for verification before to commit or for deployments/releases. But NetBeans 9-snapshot multi-modules project seems to require compliance with Java 9 conventions. Rémi Forax proposes another build tools with a directory structure adapted to Java 9 conventions [2]. Basically instead of "<module>/src/main/java" he uses "src/main/java/<module>". Has anyone considered to use such directory structure in a Maven project? I realize that it would requires customizing the pom.xml files and that it put the main source code (src/main/java) and the test (src/test/java) further apart (main and test no longer in the same module directory). I'm having hesitation about whether the advantages would be worth the inconvenient. Related question: would Maven consider to support an alternative directory structure convention more "naturally" compatible with Java 9 conventions (meaning: allowing a modular "Hello world" to be compilable with a minimal set of javac options)? Regards, Martin [1] https://fr.slideshare.net/RobertScholte/the-dos-and-donts-with-java-9-devoxx-2017 [2] https://github.com/forax/pro-demo/#a-simple-modular-application