我遇到了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>
答案 0 :(得分:3)
在Maven-Dependency-Plugin版本2.10及更高版本中修复了此行为:
答案 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