我正在使用maven-resources-plugin从我的项目中复制一些资源,但我的一个资源是二进制文件。输出结果显示Using 'UTF-8' encoding to copy filtered resources
我的问题!!!
这是我的插件配置。
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/autopublisher</outputDirectory>
<resources>
<resource>
<directory>src/autopublisher</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
我可以跳过二进制文件的UTF-8转换吗?
谢谢。
答案 0 :(得分:19)
为了解决我的问题,我将其添加到我的配置maven binary filtering:
<nonFilteredFileExtensions>
<nonFilteredFileExtension>dcm</nonFilteredFileExtension>
</nonFilteredFileExtensions>
答案 1 :(得分:3)
设置两个单独的<resource>
元素,一个使用<filtering>false</filtering>
,另一个使用<filtering>true</filtering>
。使用<includes>
的{{1}}和<excludes>
元素,通过扩展名从其中一个元素中排除二进制文件。
然而,资源插件在排除例如默认情况下,请确保使用最新版本。
答案 2 :(得分:2)
我遇到了类似的情况,其中插件无意中处理了二进制文件(以及txt和二进制数据的混合),使其最终无法使用。
为了解决这个问题,我只需要更明确地过滤哪些类型的文件来过滤和保留所有其他文件,不受影响,见下文:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>filter-config-files</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration><outputDirectory>${project.build.directory}/config-filtered</outputDirectory>
<resources>
<resource>
<directory>${project.build.directory}/nar/${project.name}-${project.version}-noarch</directory>
<!-- enabling filetering ONLY on these file types -->
<filtering>true</filtering>
<includes>
<include>**/*.xml</include>
<include>**/*.sh</include>
</includes>
</resource>
<resource>
<directory>${project.build.directory}/nar/${project.name}-${project.version}-noarch</directory>
<!-- now excluding filtering on ALL OTHER file types but still including them in the archive -->
<filtering>false</filtering>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
答案 3 :(得分:1)
对于没有扩展的已编译二进制文件(它在RHEL构建服务器上启动以进行某些组件测试),为其打算运行的Linux版本添加了文件扩展名并使用了code-gijoe的答案以上确保maven没有&#34;过滤&#34;它:
<nonFilteredFileExtensions>
<nonFilteredFileExtension>rhel</nonFilteredFileExtension>
</nonFilteredFileExtensions>