maven-dependency-plugin unpack-dependencies不支持包含超过100个字符的路径的tar

时间:2014-09-24 19:16:11

标签: maven tar maven-dependency-plugin

我遇到了maven-dependency-plugin(测试版本为2.8和2.9)的问题,它在提取时截断了tar.bz2中超过100个字符的路径。

我已经看到maven程序集插件有tarLongFileMode可以设置为'gnu',但maven依赖插件似乎不存在这样的内容。

我已经确认我的焦油提取物很好(在osx上有bsd和gnu tar)。 tar本身很好,路径超过100个字符。

我是否只需要接受maven-dependency-plugin不支持包含长度超过100个字符的路径的tar文件?或者我错过了什么?也许值得注意的是我手动创建了我的tar.bz2文件(不使用maven-assembly-plugin)而我正在使用OSX的bsd tar?我可以编写一个脚本来提取我的tar.bz2,但是maven-dependency-plugin看起来像是一个现成的解决方案。

这是一个被截断的示例路径:

whyDoTheyNameThingsSoLongTest/inputFiles/somethingequallylong.validation-20140924001133_39384844diddjdf0sfhd-9384hslkjfo0001

这是我的pom.xml中的相关部分:

<dependencies>
  <dependency>
    <artifactId>big-binary-files</artifactId>
    <groupId>the-group-of-largeness</groupId>
    <version>1.0</version>
    <type>tar.bz2</type>
  </dependency>
</dependencies>

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-dependency-plugin</artifactId>
      <inherited>false</inherited>
      <executions>
        <execution>
          <id>unpack-big-binary-files</id>
          <goals>
            <goal>unpack-dependencies</goal>
          </goals>
          <phase>generate-sources</phase>
          <configuration>
            <outputDirectory>${basedir}/part/of/my/longpath/</outputDirectory>
            <includeArtifactIds>big-binary-files</includeArtifactIds>
            <includeGroupIds>the-group-of-largeness</includeGroupIds>
            <excludeTransitive>true</excludeTransitive>
            <overWriteReleases>true</overWriteReleases>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</pluginManagement>

2 个答案:

答案 0 :(得分:3)

在Maven-Dependency-Plugin版本2.10及更高版本中修复了此行为:

https://issues.apache.org/jira/browse/MDEP-572

答案 1 :(得分:0)

我遇到了同样的问题。要直接回复,是的,我们必须接受它,但还有其他一些方法可以解决这个问题。

我通过使用Dependency插件将tar文件复制到目标目录,然后使用 AntRun插件 1 来完全使用它特色蚂蚁功能:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.8</version>
    <executions>
        <execution>
            <phase>prepare-package</phase>
            <configuration>
                <tasks>
                    <untar src="path/to/file.tar" dest="path/to/dest" />
                </tasks>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Unzip Task识别maven依赖插件的路径名太长,还有许多其他有用的功能 2