从另一个maven install命令触发maven install命令

时间:2009-10-01 08:44:13

标签: maven-2

有没有办法从另一个maven install命令触发maven install命令?

换句话说,我希望能够在maven项目上执行maven install命令(在eclipse中),我希望这会自动导致另一个maven项目上的安装命令。 这可能吗?

2 个答案:

答案 0 :(得分:4)

“触发”另一个版本的Maven方法是定义multi-module build。父pom项目可以指定模块,这些模块都将使用标准生命周期构建。因此,在父级上运行mvn install意味着每个模块依次构建。

父级用pom packagin定义,并且会有这样的模块声明:

<modules>
  <module>module-a</module>
  <module>module-b</module>
</modules>

或者,可以将其他工件附加到构建中,以便将它们与主工件一起部署(假设它们已经打包,您可以使用build-helper-maven-plugin attach任意文件你的pom,所以它将使用指定的分类器进行部署。以下配置将指定的文件附加为my-artifact-1.0-extra.jar

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.3</version>
    <executions>
      <execution>
        <id>attach-artifacts</id>
        <phase>package</phase>
        <goals>
          <goal>attach-artifact</goal>
        </goals>
        <configuration>
          <artifacts>
            <artifact>
              <file>/path/to/extra/file.jar</file>
              <type>jar</type><!--or specify your required extension-->
              <classifier>extra</classifier>
            </artifact>
          </artifacts>
        </configuration>
      </execution>
    </executions>
  </plugin>

答案 1 :(得分:4)

正如所指出的,在一组模块上启动目标(简称mvn install)的maven方法是将它们组织为一个多模块项目并在父pom上启动目标。在幕后,Maven将使用“Maven反应堆”进行这项工作。反应器将通过对由模块之间的依赖关系构造的有向图的节点进行拓扑排序来计算构建顺序。通过查看poms中的<modules><dependencies>标记来构建此图表。

但是从父母那里启动maven并不是唯一的选择,而且maven提供了更多与反应堆一起玩的可能性(例如制作项目及其依赖项或依赖它的那些):

检查出来,它可能会帮助您实现目标。