Besides src/main/java folder, we have one folder that contains some generated java sources that are required for the main sources. Code generation is invoked
I totally agree with the accepted answer and only want to offer a slightly different suggestion for naming the directories:
src-gen/main/java
Background: In the Eclipse/Maven Tycho world (where code/resource generation often plays a large role) there is the src-gen directory for generated code, which has been established as some kind of standard convention. (the default project layout is a bit different compared to Maven, as all source files are directly in src and src-gen).
In a Maven project that could be translated for example to src-gen/main/java, src-gen/test/java, src-gen/test/resources. I like that more than moving everything into a "generated" directory, because
src/main/javaand src-gen/main/java are on the same depth in the directory treesrc-gen contains bothgenerated/src/main/java still apply (e.g. easy cleanup)Some thoughts/opinions about the other suggestions from the question:
/src/main/generated-java I would probably rather go with something like /src/main/java-gen which, when sorting directories alphabetically, keeps generated and regular code next to each other (-gen is also another pattern already used in Eclipse projects)gen fits in with the brief official names like src, it etc. more than generated. I've already seen src/gen/java a few times in the wild and have the feeling it is a more common than /src/generated/java. On the other hand some Maven plugins use the quite verbose target/generated-sources/ directory, so generated-sources/main/java could also be an option if your not into short names...Ultimately I think the naming doesn't matter that much and it is up to your preference since none of this is official convention.