2009-02-25 59 views
2

我正在创建一个多模块项目,该项目可以构建许多其他相关项目。其中一些项目也是多模块项目,在某些情况下,它们构建相同的子项目。 Maven对我大叫,但这是故意的,我希望它能够继续建立。解决maven错误:项目'XYZ'在反应器中复制

有没有人解决这个问题? 谢谢。

回答

1

我不认为你应该那样做。 (您可以尝试定义一个配置文件 - 比如说一个完整的配置文件,在这里确保每个模块只编译一次,另一个配置文件在您执行子构建时添加额外的模块。)

但是你最好采用maven的方式 - 每个项目都应该在其自己的目录中包含仅作为模块的目录,例如只有直接的孩子。

Maven有一些非书面的隐含假设,例如 - 始终继承子目录,从父目录中的pom中继承,例如,继承树必须与你的目录树匹配,否则一些插件将无法工作,例如发布插件或一些报告插件。

简短的回答是 - 在maven中,您的项目层次结构/树中不能有两次模块。

maven中有很多错误的方法,因此必须坚持已知工作的东西 - 比如pom hierarchy ==目录结构。

0

您是否尝试过这些命令行选项之一?

-fae,--fail-at-end   Only fail the build afterwards; allow all 
           non-impacted builds to continue 
-fn,--fail-never    NEVER fail the build, regardless of project 
           result 
0

这样呢,当你有这样的结构:

+-- root-project-A 
    `-- pom.xml 
    +-- module-A 
    | `-- pom.xml 
    +-- module-B 
    | `-- pom.xml 
    +-- root-project-B 
     `-- pom.xml 
     +-- module-C 
      `-- pom.xml 

并配置你喜欢这个模块:

|-- 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> 

项目中的不能引用该项目B,因为B没有引用A作为父母。包装必须独立

相关问题