提取从Maven程序集插件创建的zip文件时出错

时间:2018-11-22 02:26:02

标签: zip maven-assembly-plugin ubuntu-18.04

我正在使用maven程序集插件从同一项目中的另一个maven模块创建zip打包资源。

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>  

我能够将资源复制到zip文件根目录内名为testdir的子目录中。 (我可以通过查看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 :(得分:0)

我尝试了一段时间,并观察到以下情况。通过UI提取选项会导致错误。如果我使用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时的问题。干杯!