2009-08-23 64 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>