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



我正在使用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.1.2

有人能在这里给我指出问题吗?

我试了一段时间,观察到了以下内容。通过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时的问题。干杯

最新更新