У меня проблема с плагином 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>
3
wonderfulthunk 24 Сен 2014 в 23:16

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>

2

0
mzmm56 22 Май 2015 в 01:44

Это поведение исправлено в Maven-Dependency-Plugin версии 2.10 и выше:

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

3
hexetic 22 Июн 2017 в 22:35