2009-02-25 42 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作爲父母。包裝必須獨立