maven-assembly-plugin png 和 ico 损坏
maven-assembly-plugin png and ico broken
我正在使用 maven-assembly-plugin 创建一个包含一些工件和其他内容的 zip 文件。其他内容位于名为 "Installationattachments" 的文件夹中。到目前为止一切正常。 "Installationattachments" 还包含一个 png 和一个 ico 文件,它们也包含在内,但这些文件在包含后就被破坏了。
这是我的 pom.xml:
的插件声明
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/assembly/dep.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>create-archive</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<inherited>false</inherited>
</plugin>
这就是程序集本身的关键部分:
<!-- installation files -->
<fileSet>
<directory>Installationattachments</directory>
<outputDirectory></outputDirectory>
<lineEnding>unix</lineEnding>
<excludes>
<exclude>*.vbs</exclude>
</excludes>
</fileSet>
<fileSet>
<directory>Installationattachments</directory>
<outputDirectory></outputDirectory>
<lineEnding>dos</lineEnding>
<includes>
<include>*.vbs</include>
</includes>
</fileSet>
问题是通过 <lineEnding>
参数指定的行尾。第一个文件集选择所有不是 VBS 文件的文件,因此它也选择 PNG 和 ICO 文件。但由于这些是二进制文件,您不想为它们设置特定的行结尾。
由于缺少 nonFilteredFileExtensions
,在 MASSEMBLY-849 中请求其支持,您可以为图像添加第三个没有行尾的文件集:
<fileSet>
<directory>Installationattachments</directory>
<outputDirectory></outputDirectory>
<lineEnding>unix</lineEnding>
<excludes>
<exclude>*.vbs</exclude>
<exclude>*.ico</exclude>
<exclude>*.png</exclude>
</excludes>
</fileSet>
<fileSet>
<directory>Installationattachments</directory>
<outputDirectory></outputDirectory>
<includes>
<include>*.ico</include>
<include>*.png</include>
</includes>
</fileSet>
<fileSet>
<directory>Installationattachments</directory>
<outputDirectory></outputDirectory>
<lineEnding>dos</lineEnding>
<includes>
<include>*.vbs</include>
</includes>
</fileSet>
我正在使用 maven-assembly-plugin 创建一个包含一些工件和其他内容的 zip 文件。其他内容位于名为 "Installationattachments" 的文件夹中。到目前为止一切正常。 "Installationattachments" 还包含一个 png 和一个 ico 文件,它们也包含在内,但这些文件在包含后就被破坏了。 这是我的 pom.xml:
的插件声明<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/assembly/dep.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>create-archive</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<inherited>false</inherited>
</plugin>
这就是程序集本身的关键部分:
<!-- installation files -->
<fileSet>
<directory>Installationattachments</directory>
<outputDirectory></outputDirectory>
<lineEnding>unix</lineEnding>
<excludes>
<exclude>*.vbs</exclude>
</excludes>
</fileSet>
<fileSet>
<directory>Installationattachments</directory>
<outputDirectory></outputDirectory>
<lineEnding>dos</lineEnding>
<includes>
<include>*.vbs</include>
</includes>
</fileSet>
问题是通过 <lineEnding>
参数指定的行尾。第一个文件集选择所有不是 VBS 文件的文件,因此它也选择 PNG 和 ICO 文件。但由于这些是二进制文件,您不想为它们设置特定的行结尾。
由于缺少 nonFilteredFileExtensions
,在 MASSEMBLY-849 中请求其支持,您可以为图像添加第三个没有行尾的文件集:
<fileSet>
<directory>Installationattachments</directory>
<outputDirectory></outputDirectory>
<lineEnding>unix</lineEnding>
<excludes>
<exclude>*.vbs</exclude>
<exclude>*.ico</exclude>
<exclude>*.png</exclude>
</excludes>
</fileSet>
<fileSet>
<directory>Installationattachments</directory>
<outputDirectory></outputDirectory>
<includes>
<include>*.ico</include>
<include>*.png</include>
</includes>
</fileSet>
<fileSet>
<directory>Installationattachments</directory>
<outputDirectory></outputDirectory>
<lineEnding>dos</lineEnding>
<includes>
<include>*.vbs</include>
</includes>
</fileSet>