2009-08-23 69 views
1

我有一個項目A正在使用mvn assembly:assembly,它給了我一個具有依賴關係的jar文件。該項目基本上獲取文件路徑並將其轉換爲XML。兩個項目的Maven配置

現在我需要創建一個新項目將由走了目錄,並呼籲多次一個包裹一個注意:它們必須是不同的應用程序。我無法修改A更改它的參數。

我想,當B建立時,它會首先建立A並得到它的jar文件。

這是在pom文件中配置它的最佳方法?我應該有兩個poms嗎? 同樣的pom,但兩個罐子正在建造?

感謝您的閱讀!

+0

我很困惑 - 你能修改或不?爲了能夠在一個pom中實現這個,你將不得不修改A的pom。 – 2009-08-23 17:26:54

+0

是的,這也是我自己的一個項目。我可能會修改POM,但我無法改變它的名稱。 – Macarse 2009-08-23 17:47:29

回答

4

我會通過添加聚合器POM與A和B作爲modules來處理此問題。然後,您只需每次構建聚合器以在A之前構建A即可。這使您可以靈活地分別構建A和B以及兩者。


如果你確定要對B內部調用的構建,它可以通過使用maven-exec-plugin調用另一個Maven的情況下完成的。

例如:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>exec-maven-plugin</artifactId> 
    <version>1.1</version> 
    <executions> 
    <execution> 
     <goals> 
     <goal>exec</goal> 
     </goals> 
    </execution> 
    </executions> 
    <configuration> 
    <executable>mvn</executable> 
    <!--specified as a property below--> 
    <workingDirectory>${projectA.path}</workingDirectory> 
    <arguments> 
     <argument>clean</argument> 
     <argument>install</argument> 
    </arguments> 
    </configuration> 
</plugin> 

... 

<properties> 
    <projectA.path>/path/to/project/a</projectA.path> 
</properties>