2015-06-20 100 views
1

我有兩個行家項目:Maven的執行兩個模塊依次

  • 一個構建幾個OSGi包,並創建包含它們
  • 另一構建與第谷使用這些束Eclipse插件的本地P2庫

當我單獨執行它們,一切正常:第一次執行創建庫,第二個可以使用它。

但我想創建一個pom執行兩個。簡單的方法:

<modules> 
    <module>p2-repository-generator</module> 
    <module>tycho-project</module> 
</modules> 

不行的,因爲第谷的嘗試,甚至它的存在as described here前使用第一POM產生的存儲庫。

我可以使用maven順序執行兩個maven任務,無需外部工具嗎?或者我可以將tycho的依賴鉤子延遲到構建中的更晚點?

澄清:

  • tycho-project取決於p2-repository-generator,故後執行。
  • 但Tycho使用自定義lifecycle participant,它試圖通過afterProjectsRead回調來解決p2依賴關係 - 這太快了,因爲只有在p2-repository-generator構建它之後,p2存儲庫纔會在那裏。
  • 這aggretor工作我曾經手動執行p2-repository-generator後,因爲那時tycho-project能夠找到它
+0

僅供參考:有[計劃使Tycho尚未解決afterProjectsRead中的依賴關係](https://bugs.eclipse.org/bugs/show_bug.cgi?id=353889),但它仍需要一段時間執行它們。 – oberlies

回答

1

正如你正確地指出,第谷做事的身材,如果生成相同的生成內容由第谷被用來建造這導致的問題非常早。解決此問題的方法是在調用maven-invoker-plugin調用中使用Tycho包裝構建的一部分。

1

你嘗試設置上p2-repository-generator依賴於tycho-project產生的P2存儲庫?恕我直言,它應該強制執行你需要的構建序列。

+1

是的,這取決於它。但tycho使用'AbstractMavenLifecycleParticipant :: afterProjectsRead'實現它的依賴解析,在maven解析該模塊後立即執行,而不是在構建依賴關係之後執行。 – Dutow