zip - 提取从 maven 程序集插件创建的 zip 文件时出错
问题描述
我正在使用 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.
我正在使用带有 maven 程序集插件版本 -1.1.2 的 Ubuntu 18
有人可以在这里指出我的问题吗?
解决方案
我尝试了一段时间并在下面观察。通过 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 时解决了该问题。干杯!
推荐阅读
- swift - 在swift 5中将货币文本字段转换为双倍?
- reactjs - 使用多个调度测试一个动作(加载、错误和成功)
- cordova-plugins - 如果我有完整路径,如何使用 Filesystem.readFile
- sql - 我如何选择订单表?
- java - 消息驱动 bean,未根据轮询间隔获取新电子邮件
- c# - 使用“in”参数修饰符传递文字
- c# - EF6 无法识别的 Guid 格式。试图在集合中找到
- dockerfile - 无法使用 dockerfile 安装具有基本映像的 Ghostscript 9.50 作为 Ubuntu 16.04
- scala - Scala 中的 Kadane 算法解释
- r - 闪亮的模块:如果服务器功能失败,则销毁模块 ui