Сжатые папки Windows не распаковывают zip полностью

#maven-2 #windows-xp #zip #maven-assembly-plugin #compressed-folder

#maven-2 #windows-xp #zip #maven-assembly-plugin #сжатая папка

Вопрос:

У меня большой проект maven с большим количеством модулей. Один из модулей не является «реальным» проектом разработки. Он содержит данные для окончательной системы. Данные развертываются в системе с помощью специального jar. Теперь pom проверяет, что jar загружен, а все остальные данные и пакетные файлы упакованы в zip. Он использует плагин сборки maven. В этом файле pom нет особой магии. Волшебство начинается при распаковке zip-файла со сжатой папкой Windows. Он распознает только jar-файл, который довольно большой (9 МБ), а не пакетные файлы и файлы данных (несколько КБ). Я не сразу заметил это, потому что у моего действительно старого Winzip нет никаких проблем с артефактом.

У кого-нибудь есть идея или видел подобные проблемы?


конфигурация плагина из файла pom

 <plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <descriptors>
            <descriptor>assembly.xml</descriptor>
        </descriptors>
    </configuration>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>
  

Моя сборка xml

 <?xml version="1.0" encoding="UTF-8"?>
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">

  <formats>
    <format>zip</format>
  </formats>  

  <dependencySets>
    <dependencySet>
      <outputDirectory></outputDirectory>
      <includes>
        <include>com.group:product-development-cli</include>
      </includes>
      <outputFileNameMapping>product-development-cli-${ext.version}.${extension}</outputFileNameMapping>
    </dependencySet>
  </dependencySets>

    <fileSets>
        <fileSet>
            <directory>.</directory>
            <excludes>
                <exclude>pom.xml</exclude>
        <exclude>assembly.xml</exclude>
        <exclude>target</exclude>
            </excludes>
        </fileSet>
    </fileSets>

</assembly>
  

Моя структура папок:
модуль
— data1
— дополнительные файлы
— data2
— дополнительные файлы
— pom.xml
— assembly.xml
— дополнительные файлы

Ответ №1:

Есть ли вероятность, что вы превышаете ограничение длины пути Windows на 260 символов? Встроенные в Windows процедуры сжатия завершаются сбоем (даже если с этим справляются другие zip-программы).)

Похоже, это часто возникает при работе с JAR из-за иерархической структуры JAR.

Не могли бы вы попробовать разархивировать архив на более короткий путь ( C:A например) и посмотреть, поможет ли это?

Комментарии:

1. Структура папок очень плоская. Тем не менее, я все равно попробовал, но безуспешно.

Ответ №2:

Вдохновленный Эдвардом Томсоном, я еще раз взглянул на zip-файл. Zip-файл содержал файлы из двух разных источников (набор файлов и зависимость). Проблема заключалась в теге каталога в наборе файлов. ( <directory>.</directory> ) Сжатым папкам не нравится ‘.’ в середине пути.

product-0.5.0-SNAPSHOT/./file.txt

Зависимость, конечно, была без . .