拥有一个包含多个模块项目的项目,并且自己拥有其他模块项目。我有一些模块生成一个特殊的工件类型'.kar',我在maven部署阶段将其部署到artifactory。
现在我想找到一种方法,使用现有的pom按版本从artifactory下载这些特定的工件。
mvn依赖:copy<>允许我按照特定的工件下载。
我希望通过生成这些工件的pom文件来完成。问题是当我使用依赖:copy时,它只在当前的pom上运行,它可能有也可能没有特殊的工件。
如果我在其中使用它,它会重新部署所有工件并正确下载特殊工件。但这不是正确的解决方案。
答案 0 :(得分:0)
您可以向项目添加一个新模块,该模块<dependencies>
包含所有.kar
工件。在这个新模块的POM文件中,您可以使用maven-dependency-plugin的copy-dependencies
目标。
<project>
<!-- Integrate this module into your multi-module project. -->
<parent>
<groupId>my.group.id</groupId>
<artifactId>my-parent-pom</artifactId>
<version>1.0.0-SNAPSHOT</version<
</parent>
...
<!-- Add dependencies for all your .kar artifacts. -->
<dependencies>
<dependency>
<groupId>my.group.id</groupId>
<artifactId>kar-artifact-1</artifactId>
<version>${project.version}</version>
<type>kar</type>
</dependency>
<dependency>
<groupId>my.group.id</groupId>
<artifactId>kar-artifact-2</artifactId>
<version>${project.version}</version>
<type>kar</type>
</dependency>
...
</dependencies>
<build>
<plugins>
<!-- Use the maven-dependency-plugin to copy your .kar artifacts. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>copy-kar-artifacts</id>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<includeTypes>kar</includeTypes>
</configuration>
</execution>
</executions>
<plugin>
</plugins>
</build>
</project>