2010-08-27 117 views
2

項目結構是:如何指定Maven模塊的順序?

/foo 
    pom.xml 
    /foo-war 
    pom.xml 
    /foo-ear 
    pom.xml 

這是我的父母pom.xml

.. 富戰
富耳 ..

這是foo-ear/pom.xml內容:

.. $ {} project.groupId富 戰 戰爭 $ {} project.version ..

編譯失敗,此消息:

... 
[INFO] Failed to resolve artifact. 
Missing: 
————— 
1) com.foo:foo-war:war:1.0-SNAPSHOT 
Try downloading the file manually from the project website. 
... 

看起來foo-ear試圖解決尚未準備好的工件。我如何指示maven事先與foo-war一起工作?或者我錯過了什麼?

ps。

<build> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-javadoc-plugin</artifactId> 
     <version>${javadoc.version}</version> 
     <executions> 
      <execution> 
       <phase>compile</phase> 
       <goals> 
        <goal>aggregate</goal> 
       </goals> 
      </execution> 
     </executions> 
    </plugin> 
</build> 

爲什麼:當我從父pom.xml刪除此代碼,一切都是固定的嗎?

+1

您運行的確切Maven命令是什麼,以及在哪個模塊上? – 2010-08-27 15:16:36

+0

我在'foo'上運行'mvn clean install'(不在任何特定模塊上) – yegor256 2010-08-27 15:21:52

回答

5

當我從父pom.xml中刪除此代碼(...)

問題類似於 MJAVADOC-161 一般多 MJAVADOC-137 。你可以使用像2.3這樣的maven-javadoc-plugin的buggy版本(可惜,你沒有顯示它)?如果是,請嘗試使用版本2.4或其他更新的版本。如果您使用的版本大於2.4,請嘗試2.4版本以查看是否在某個時候引入了迴歸。在這種情況下,請開一個新的問題。


我使用的是2.5版。當我試圖扭轉回2.4時,我得到:'聚合'是在執行中指定的,但在插件中找不到。看起來像2.5是我唯一的選擇?你認爲我需要提交錯誤報告?

我沒有注意到目標,javadoc:aggregate已經在2.5版本中引入,所以它確實不會在2.4以上,並且上面提到的問題是不相關的。

但我又看了一眼,我看到一些其他的像MJAVADOC-275MJAVADOC-276。我不確定要了解確切的狀態(並且錯誤可能不是固定的),但在開啓問題之前,請務必嘗試使用版本2.7和版本2.6(某些人提到2.6.1中引入的迴歸)。

+0

我使用的是版本2.5。當我試圖扭轉回到2.4時,我得到:''聚合'是在執行中指定的,但在插件中找不到。看起來像2.5是我唯一的選擇?你認爲我需要提交錯誤報告? – yegor256 2010-08-27 17:34:14

+0

@Vincenzo查看我的更新。 – 2010-08-27 18:40:34

+0

@Pascal與2.6和2.7相同的故事:( – yegor256 2010-08-30 13:24:47

3

Maven自動解決模塊之間的依賴關係,並以正確的順序構建它們 (至少如果您使用的是相當當前的版本),但僅限於從父項目構建時。 (負責這個的Maven組件稱爲Reactor)。

如果這不起作用,那麼該模塊可能與引用的依賴關係不相同(例如版本不匹配)。

請比較

<groupId><artifactId><version><packaging>/ <type>

一)在耳朵的依賴塊和

二)戰爭的POM頭

1

看起來好像是上面正確設置。它看起來不像構建順序問題。

當您從頂層運行,Maven將輸出電抗器構建順序,e.g:

[INFO] Scanning for projects... 
[INFO] Reactor build order: 
[INFO] foo-ear 
[INFO] foo-war 

這看起來好不好?

你是否也在你的WAR中定義了構建1.0-SNAPSHOT?如果您導航到foo-war和'mvn install'然後嘗試從頂層構建,會發生什麼?

+0

我孤立了這個問題,並改變了問題(參見上文) – yegor256 2010-08-27 16:02:51