2013-06-24 173 views
0

我在與a multi-module project一個問題,其中所述模塊中的一個是基於註釋的行家-插件依賴性:https://github.com/fommil/netlib-java/Maven插件如在多模塊項目

基本上,mvn compile失敗第一次,然後成功時我做了第二次mvn compile

它也可以從清潔確定,如果我做

mvn -pl generator compile 
mvn compile 

我想構建一氣呵成成功,這樣我可以做所有模塊的構建和發佈。

+0

隨意看看源(上面鏈接):-)據我所知,該插件被正確包裝,但我不知道你是什麼意思「是NETLIB設置爲POM相同的屬性「 – fommil

+0

即使在手動安裝jlapack後,我也無法構建它(我調整了maven-compiler-plugin設置來添加接口mojo和您的AbstractNetlibGenerator,因此它不會使用jlapack javadoc,因此它會生成,但一些測試會保留失敗,但如果我跳過它似乎工作 - 所有這一切調整後),快速'傻'問題..因爲你在netlib上使用生成器作爲構建插件,你嘗試先構建生成器插件,然後整個項目? –

+0

我沒有嘗試,但我希望它會打破sonatype發佈,不是嗎?對不起,它沒有工作......我處於開發的中間,所以可能處於不一致的狀態。 – fommil

回答

2

我快速瀏覽了一下你的項目,發現「generator」插件是多模塊項目的一部分此項目內的相同版本)。這不是合法使用!你必須從反應堆外提供所有必需的插件!

原因是,maven試圖填充反應堆並事先確定所有需要的插件。然後它開始構建。如果生成器插件是項目的一部分,Maven無法執行此操作。

Stephen Connolly在maven-users列表或其他地方寫過這篇文章,但目前我找不到它,沒有時間搜索。

心連心, - 馬丁

+0

這真是太遺憾了,因爲我的項目顯然是具有相同反應器的插件的有效用例。 – fommil

0

(我把這個作爲一個答案,因爲它不適合在評論區)

嗯,我從Github上下載的11fe0f5修訂,並試圖MVN清潔父/根文件夾中安裝看看會發生什麼,我得到這個錯誤:

 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 6.444s 
[INFO] Finished at: Mon Jun 24 20:00:30 BRT 2013 
[INFO] Final Memory: 20M/350M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Could not find goal 'interface' in plugin org.netlib:generator:1.0-SNAPSHOT among available goals -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoNotFoundException 

這使我懷疑,如果接口的目標發電機插件確實存在,如果它正在生成的目標描述符.. 所以看發生器模塊POM。 xml我找不到任何maven-plugin配置來生成一個插件模塊,所以我改變你的Maven的插件,插件配置來:

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-plugin-plugin</artifactId> 
      <version>3.2</version> 
      <configuration> 
       <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound> 
      </configuration> 
      <executions> 
       <execution> 
        <id>mojo-descriptor</id> 
        <phase>process-classes</phase> 
        <goals> 
         <goal>descriptor</goal> 
        </goals> 
       </execution> 
      </executions> 
</plugin> 

和添加的界面目標發電機插件,現在我能夠從根文件夾就好了安裝。

MVN乾淨安裝部分輸出:

 
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0 

[INFO] 
[INFO] --- maven-jar-plugin:2.3.2:jar (default-jar) @ netlib --- 
[INFO] Building jar: C:\ebook\netlib-java-11fe0f502496276be5536003eaacbde363317c 
b1\netlib\target\netlib-1.0-SNAPSHOT.jar 
[INFO] 
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ netlib --- 
[INFO] Installing C:\ebook\netlib-java-11fe0f502496276be5536003eaacbde363317cb1\ 
netlib\target\netlib-1.0-SNAPSHOT.jar to C:\Users\oltra01\.m2\repository\org\net 
lib\netlib\1.0-SNAPSHOT\netlib-1.0-SNAPSHOT.jar 
[INFO] Installing C:\ebook\netlib-java-11fe0f502496276be5536003eaacbde363317cb1\ 
netlib\pom.xml to C:\Users\oltra01\.m2\repository\org\netlib\netlib\1.0-SNAPSHOT 
\netlib-1.0-SNAPSHOT.pom 
[INFO] ------------------------------------------------------------------------ 
[INFO] Reactor Summary: 
[INFO] 
[INFO] parent ............................................ SUCCESS [0.478s] 
[INFO] generator ......................................... SUCCESS [6.172s] 
[INFO] netlib ............................................ SUCCESS [1:05.310s] 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 1:12.105s 
[INFO] Finished at: Mon Jun 24 19:55:08 BRT 2013 
[INFO] Final Memory: 27M/491M 
[INFO] ------------------------------------------------------------------------ 

/目標是您使用的Maven的命令來獲得你的問題的錯誤?你有沒有嘗試刪除整個存儲庫? (也許你已經在那裏安裝了一個混亂的發生器版本)

+0

這很奇怪,我不需要執行者的目標。我會在今晚晚些時候嘗試,看看如果加入它,一切都會一次性完成。 – fommil

+0

你的意思是描述符的目標? –

+0

好的,這很奇怪。現在我添加了'execution'來運行'descriptor'目標,我得到了'[ERROR]在第一遍中找不到目標'interface',並且它在第二遍中運行。所以,仍然沒有解決,但這可能是一個暗示。 – fommil

相關問題