在我的Maven构建中,我调用一个产生一些tar.gz工件的脚本。如何指定maven groupId,artifactId,version和packaging,所以它在mvn deploy
期间将最终tar.gz部署到artifactory?
我的挑战是,使用程序集插件可以实现这一点,但是如果任意脚本输出工件则不行。
例如:假设我的shell使用一些groupId和artifactId生成ABC.tar.gz
。我的版本是0.0.1
。
我想将ABC.tar.gz
部署到artifactory,所以在下一个项目的pom文件中,我能够像下面这样引用它:
<dependency>
<groupId>my_group</groupId>
<artifactId>ABC</artifactId>
<version>0.0.1</version>
<type>tar.gz</type>
</dependency>
然后将ABC.tar.gz
下载到.m2
。
由于一系列原因,我不想使用程序集插件。
答案 0 :(得分:2)
您可以使用build-helper:attach-artifact
的Build Helper Maven Plugin目标:
附加要安装和部署的其他工件。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.10</version>
<executions>
<execution>
<id>attach-artifacts</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>${project.build.directory}/path/to/targz</file>
<type>tar.gz</type>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
这将附加tar.gz文件,其中包含与当前Maven项目相同的groupId,artifactId和version。这个额外的工件将像项目的主要工件一样进行部署和安装。