在maven存储库中安装tar.gz文件

时间:2015-08-19 07:18:23

标签: maven tar

我有一个压缩的tar.gz文件,我想用它作为其他项目的依赖项。

我无法使用以下命令在maven存储库中上传它,因为maven不支持tar.gz打包:

mvn install:install-file -Dfile = / path-to-file / XXX-0.0.1-SNAPSHOT.tar.gz -DomFile = / path-to-pom / pom.xml

示例pom.xml

<project>

  <modelVersion>4.0.0</modelVersion>
  <name>XXX</name>
  <groupId>com.example.file</groupId>
  <artifactId>xxx</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>tar.gz</packaging>

</project>

如果我使用上面提到的rar打包命令,那么maven会上传XXX-0.0.1-SNAPSHOT.tar.gz文件,但扩展名为.rar

除了为自定义包开发maven插件之外,有没有办法在maven存储库中上传tar.gz,然后在其他项目中将它作为依赖项使用?

(注意:我只想使用tar.gz,而不是任何其他压缩,例如rar等)。

1 个答案:

答案 0 :(得分:4)

@khmarbaise,谢谢你指导正确。使用附加工件解决了该问题。这是我的pom.xml中的一个片段:

<build>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>build-helper-maven-plugin</artifactId>
      <version>1.7</version>
      <extensions>true</extensions>
      <executions>
        <execution>
          <id>attach-artifacts</id>
          <phase>package</phase>
          <goals>
            <goal>attach-artifact</goal>
          </goals>
          <configuration>
            <artifacts>
              <artifact>
                <file>xxx-0.0.1-SNAPSHOT.tar.gz</file>
                <type>tar.gz</type>
                <classifier>optional</classifier>
              </artifact>
            </artifacts>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

同样,可以在其他项目中添加依赖项,如下所示:

<dependencies>
    <dependency>
     <groupId>your.group.id</groupId>
     <artifactId>xxx</artifactId>
     <version>0.0.1-SNAPSHOT</version>
     <classifier>optional</classifier>
     <type>tar.gz</type>
    </dependency>
  </dependencies>