我正在创建一个多模块项目,用于构建许多其他相关项目.其中一些项目也是多模块项目,在某些情况下,它们构建相同的子项目.Maven对我大吼大叫,但这是有意的,无论如何我还是想建立它.
有没有人解决这个问题?谢谢.
我认为你不应该那样做。(您可以尝试定义一个配置文件 - 比如说一个完整的构建配置文件,您可以确保每个模块只编译一次,另一个配置文件在您进行子构建时添加其他模块。)
但是你最好采用 maven 的方式——每个项目都应该只包含它自己目录中的目录作为模块,例如只包含直接子项。
Maven 有一些非书面的隐含假设,例如 - 始终从父目录中的 pom 继承子模块,例如继承树必须与您的目录树匹配,否则某些插件将无法工作,例如发布插件或某些报告插件。
简短的回答是 - 在 maven 中,您的项目层次结构/树中不能有两次模块。
maven 中有很多错误的方法,因此必须坚持使用已知有效的方法——比如 pom 层次结构 == 目录结构。
当你有这样的结构时会发生这种情况:
+-- root-project-A
`-- pom.xml
+-- module-A
| `-- pom.xml
+-- module-B
| `-- pom.xml
+-- root-project-B
`-- pom.xml
+-- module-C
`-- pom.xml
Run Code Online (Sandbox Code Playgroud)
并配置你的模块如下:
|-- root-project-A
`-- pom.xml
<modules>
<module>module-A</module>
<module>module-B</module>
<module>root-project-B</module> <!-- Error: project A reference project B -->
<module>root-project-B/module-C</module> <!-- Error: project A reference project B -->
</modules>
|-- root-project-B
`-- pom.xml
<modules>
<module>module-C</module>
</modules>
Run Code Online (Sandbox Code Playgroud)
项目A不能引用项目B,因为B不引用A作为父项.包裹必须是独立的
小智 5
在我的例子中,IntelliJ 放入<module>parentModule/XYZ</module>父模块 pom.xml
因此,请使用“查找全部”( CTRL+SHIFT+F ) 'XYZ' 检查最终的错误
| 归档时间: |
|
| 查看次数: |
18185 次 |
| 最近记录: |