两个项目的Maven配置

时间:2009-08-23 14:43:10

标签: maven-2

我正在使用mvn assembly:assembly构建一个项目 A ,它为我提供了一个带有依赖项的jar文件。该项目基本上获取文件路径并将其转换为XML。

现在我需要创建一个新项目 B ,它将通过遍历目录并多次调用 A 来包装 A 注意:它们必须是不同的应用程序。我无法修改 A 更改其参数。

我希望当 B 构建时,它将首先构建 A 并获取它的jar文件。

哪个是在pom文件中配置它的最佳方法?我应该有两个poms吗? 同样的pom,但正在建造两个罐子?

感谢阅读!

1 个答案:

答案 0 :(得分:5)

我会通过添加A和B的聚合器POM modules来处理这个问题。然后,您只需构建聚合器,每次在B之前构建A。这使您可以灵活地单独构建A和B以及两者一起构建。


如果您决定从B中调用A的构建,可以使用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>