【发布时间】:2011-07-04 09:07:06
【问题描述】:
如果构建器发现一个未使用 UTF-8 编码的文件,我是否可以使用 Maven 插件来使构建失败?
【问题讨论】:
标签: encoding utf-8 maven maven-plugin
如果构建器发现一个未使用 UTF-8 编码的文件,我是否可以使用 Maven 插件来使构建失败?
【问题讨论】:
标签: encoding utf-8 maven maven-plugin
是的,有https://github.com/mikedon/encoding-enforcer
它使用Maven Enforcer Plugin和juniversalchardet进行编码检测。
2016-10-20 更新: org.codehaus.mojo 有一个 extra-enforcer-rules 插件,它引入了 requireEncoding 规则。它使用ICU4J 进行编码检测。
用法是:
<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
<!-- find the latest version at http://maven.apache.org/plugins/maven-enforcer-plugin/ -->
<version>1.0</version>
<executions>
<execution>
<id>require-utf-8</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireEncoding>
<encoding>UTF-8</encoding>
<includes>src/main/resources/**,src/test/resources/**</includes>
</requireEncoding>
</rules>
<fastFail>false</fastFail>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>extra-enforcer-rules</artifactId>
<!-- find the latest version at http://www.mojohaus.org/extra-enforcer-rules/ -->
<version>1.0-beta-6</version>
</dependency>
</dependencies>
</plugin>
【讨论】:
采用 Maven 的好选择 - 毫无疑问,您很快就会完全皈依! :)
您可能想查看Maven enforcer plugin。首先,您可以使用requireProperty 规则来确保project.build.sourceEncoding 属性设置为UTF-8。
至于检查实际文件本身(即检查是否有人提交了非 unicode 文件),您可以 implement your own custom rule 获取强制插件。执行此规则时,您需要读取项目中的所有资源并找到某种方法来检测每个资源的编码(例如 iconv)。
【讨论】: