#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
Зависимость, конечно, была без .
.