2017-02-20 66 views
1

我使用maven-assembly-plugin创建一个包含一些工件和其他东西的zip文件。额外的东西位于名为“Installationattachments”的文件夹中。一切正常工作到目前为止。 “安装附件”还包含一个PNG和一个ico文件,这些文件也包含在内,但这些文件在包含之后会被破坏。 这里是我的pom.xml的插件声明:maven-assembly-plugin png和ico破

<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> 

而且that's大会本身的重要组成部分:

<!-- 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> 

回答

1

的问题是行结束通过<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>