我使用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>发布于 2017-02-20 22:41:45
问题出在通过<lineEnding>参数指定行尾。第一个文件集选择所有不是VBS文件的文件,因此它还选择PNG和ICO文件。但由于这些都是二进制文件,所以您不希望为这些文件设置特定的行尾。
如果缺少nonFilteredFileExtensions,您可以为图像添加第三个不带行尾的文件集:
<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>https://stackoverflow.com/questions/42346505
复制相似问题