我正在使用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 .
命令,则提取成功。
但我找到了一个解决办法,如下所示。
-
首先创建一个空目录。
<fileSet> <!-- Create empty directory --> <outputDirectory>./templates</outputDirectory> <excludes> <exclude>**/*</exclude> </excludes> </fileSet>
-
将资源复制到目录中。
<fileSet> <directory>${basedir}/test</directory> <includes> <include>*.xml</include> </includes> <outputDirectory>./templates</outputDirectory> </fileSet>
此方法修复了提取zip时的问题。干杯