将maven tar.gz工件部署为没有程序集插件的构建输出

时间:2016-01-29 23:23:03

标签: maven

在我的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

由于一系列原因,我不想使用程序集插件。

1 个答案:

答案 0 :(得分:2)

您可以使用build-helper:attach-artifactBuild 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。这个额外的工件将像项目的主要工件一样进行部署和安装。