У меня проблема с плагином maven-dependency-plugin (тестировалась как версиями 2.8, так и 2.9), где он обрезает пути длиной более 100 символов из моего tar.bz2 при извлечении.
Я видел, что плагин сборки maven имеет tarLongFileMode
, который может быть установлен в 'gnu', но ничего подобного, похоже, не существует для плагина зависимостей maven.
Я подтвердил, что мой tar извлекает отлично (как с bsd, так и с gnu tar на osx). сам tar подходит для путей более 100 символов.
Мне просто нужно признать, что maven-dependency-plugin не может поддерживать файлы tar, содержащие пути длиной более 100 символов? Или я что-то упускаю? Возможно, следует отметить, что я создаю свой файл 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 ответа
Я столкнулся с той же проблемой. Чтобы ответить напрямую, да, нам нужно просто принять это, но есть и другие способы решения проблемы.
Я работал над этим, используя плагин Dependency для копирования tar-файла в целевой каталог, а затем использовал плагин AntRun 1 , чтобы использовать полнофункциональные функции ant:
<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>
Это поведение исправлено в Maven-Dependency-Plugin версии 2.10 и выше:
https://issues.apache.org/jira/browse/MDEP-572
Похожие вопросы
Новые вопросы
maven
Apache Maven - это инструмент для автоматизации сборки и управления проектами, используемый в основном для проектов Java. Этот тег предназначен для вопросов, которые не относятся к конкретной версии Maven. Вместо этого используйте тег gradle для вопросов, касающихся Gradle.