Ошибка при извлечении zip-файла, созданного из плагина сборки maven - PullRequest
0 голосов
/ 22 ноября 2018

Я использую плагин сборки maven для создания zip ресурсов упаковки из другого модуля maven в том же проекте.

Parent_project |_module1 |_resources |_templates |_abc.xml |_module2 |_resources |_build-config.xml

Ниже приведен мой файл build-config.xml.

<assembly
        xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
    <id>bundle</id>
    <formats>
        <format>zip</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <fileSets>
        <fileSet>
            <directory>${basedir}/../module1/src/main/resources/templates</directory>
            <includes>
                <include>*.xml</include>
            </includes>
            <outputDirectory>/testdir</outputDirectory>
        </fileSet>
    </fileSets>
</assembly>  

Я могу скопировать ресурсы в подкаталог с именем testdir в корне zip-файла.(Я могу наблюдать это, просматривая zip-файл, не распаковывая его.) Но если я попытаюсь распаковать zip-файл, он выдаст мне следующую ошибку.There was an error while extracting the sample.zip. "sample/testdir/abc.xml": Not a directory.

Я использую Ubuntu 18 с подключаемым модулем сборки maven версии -1.1.2

Может кто-нибудь указать мне проблему здесь?

1 Ответ

0 голосов
/ 22 ноября 2018

Я пытался некоторое время и заметил ниже.Извлечение с помощью опции пользовательского интерфейса вызывает ошибку.Если бы мне пришлось использовать команду unzip ./myzip.zip -d ., то извлечение прошло успешно.

Но я нашел обходной путь для этого, как показано ниже.

  1. Сначала создайте пустой каталог.

    <fileSet> <!-- Create empty directory --> <outputDirectory>./templates</outputDirectory> <excludes> <exclude>**/*</exclude> </excludes> </fileSet>

  2. Копирование ресурсов в каталог.

    <fileSet> <directory>${basedir}/test</directory> <includes> <include>*.xml</include> </includes> <outputDirectory>./templates</outputDirectory> </fileSet> Этот метод устраняет проблему при извлечении zip-файла.Ура!

...