【问题标题】:Maven plugin to ensure UTF-8 Encoding?确保 UTF-8 编码的 Maven 插件?
【发布时间】:2011-07-04 09:07:06
【问题描述】:

如果构建器发现一个未使用 UTF-8 编码的文件,我是否可以使用 Maven 插件来使构建失败?

【问题讨论】:

    标签: encoding utf-8 maven maven-plugin


    【解决方案1】:

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

    它使用Maven Enforcer Pluginjuniversalchardet进行编码检测。

    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>
    

    【讨论】:

    • 当我使用来自 git 站点的配置运行插件时出现错误... (Maven v. 3.3.9 + java 7): [错误] 无法执行目标 org.apache.maven .plugins:maven-enforcer-plugin:1.2:enforce (default-cli) 项目:目标 org.apache.maven.plugins:maven-enforcer-plugin:1.2:enforce 的参数“规则”丢失或无效-> [Help 1] .....规则配置与github相同,只需复制/粘贴
    • fork 上的自述文件说要从 mikedon 的 url 构建,这令人困惑,所以我从 ericbn 构建但仍然得到相同的错误?目标 org.apache.maven.plugins:maven-enforcer-plugin:1.2:enforce 的参数“规则”丢失或无效...我正在通过 mvn enforcer:enforce 运行?
    • 好的,所以我终于根据这个答案中的信息得到了这个工作:stackoverflow.com/questions/24827194/… 这就是为什么我讨厌 MAVEN 和任何选择使用这个工具的人......你需要为执行做'default-cli' AARRRGH BURN IN HELL MAVEN
    【解决方案2】:

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

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

    至于检查实际文件本身(即检查是否有人提交了非 unicode 文件),您可以 implement your own custom rule 获取强制插件。执行此规则时,您需要读取项目中的所有资源并找到某种方法来检测每个资源的编码(例如 iconv)。

    【讨论】:

      猜你喜欢
      • 2013-02-17
      • 2015-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-01
      • 1970-01-01
      • 2018-12-02
      • 2011-03-16
      相关资源
      最近更新 更多