除了 src/main/java
文件夹外,我们还有一个文件夹,其中包含一些生成的 java 源代码,这些源代码是主要源代码所必需的。需要时 手动 调用代码生成。生成的源被 签 入源代码库。一切都将构建和包装 在一起。
将与主要源代码一起编译的生成的 Java 源代码 的最佳位置是什么?应该是:
/src/generated/java
(遵循与—相同的命名逻辑src/testInt/java
用于集成测试)/generated-src/main/java
(与 “src 目录包含用于构建项目的所有源材料” 冲突)/src/main/generated-java
(嗯……generated-java
不是一个类型)- ……?
第一个选项似乎最适合这种情况。你怎么看? Maven 文档中是否有描述这种情况的内容(我忽略了)?你知道任何具有类似结构的回购协议吗?
谢谢你。
回答
正如@Absurd-Mind 所建议的,我们正在考虑的方向是将源代码拆分为子模块(这在 gradle 中工作得很好)。因此,生成的源和一些其他相关的源将进入它自己的子模块(它们将产生单独的工件),其余的将进入使用这个的其他子模块。谢谢你。
原文由 igr 发布,翻译遵循 CC BY-SA 4.0 许可协议
我认为位置取决于源的生成和处理方式。
源代码是在构建过程中自动生成的:然后我会使用
target/main/java/
,target/test/java/
等等。此代码未签入 CVS,因为您可以相当容易地重建它。如果您清理项目,target
目录将被删除,源将被重建。源代码由外部工具或类似工具手动生成:我会使用
generated/src/main/java/
,generated/src/test/java/
,generated/src/main/resources/
等等。这段代码应该签入。一个好处是,一旦您看到顶级目录名称是generated
您就会知道下面的所有文件/目录也已生成。顶层目录下还有标准的 maven 目录结构。另一点是清理很容易,只需删除generated
并重新创建它,而无需查看许多其他目录(如您的示例中:src/main/generated-java
和 src/test/generated-java ).编辑:另一个不错的解决方案是创建一个 Maven 项目,它只包含生成的源代码,如
myproject-generated-1.0.3.jar
。该项目将是您实际应用程序中的依赖项。然后你只需将生成的源 intsrc/main/java
。