Maven插件确保UTF-8编码?

Nat*_*ger 6 encoding utf-8 maven-plugin maven

如果构建器注意到未使用UTF-8编码的文件,是否有可用于使构建失败的Maven插件?

joe*_*ohn 5

采用 Maven 是一个不错的选择 - 毫无疑问,您很快就会完全皈依!:)

您可能想查看Maven 执行器插件。首先,您可以使用该requireProperty规则来确保该project.build.sourceEncoding属性设置为 UTF-8。

至于检查实际文件本身(即检查某人是否提交了非 unicode 文件),您可以为执行器插件实现您自己的自定义规则。当执行此规则时,您需要读取项目中的所有资源并找到某种方法来检测每个资源的编码(例如 iconv)。


eri*_*cbn 5

是的,有https://github.com/mikedon/encoding-enforcer

它使用Maven Enforcer插件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>
Run Code Online (Sandbox Code Playgroud)

  • 好的,所以我终于根据这个答案中的信息开始工作:http://stackoverflow.com/questions/24827194/maven-enforcer-plugin-missing-or-invalid-rules这就是为什么我讨厌世界上任何一个人选择使用这个工具......你需要为执行设置id'default-cli'AARRRGH BURN IN HELL MAVEN (2认同)