Fork me on GitHub

Require Encoding

This rule checks files for a required encoding and fails if the guessed encoding doesn't match the required one.

Note that this rule uses icu4j to guess the source encoding of a file. Use of US-ASCII is hard to detect and should not be used as a required encoding.

The following parameters are supported by this rule:

  • encoding - Required encoding. Default value ${project.build.sourceEncoding}.
  • includes - List of files to include, separated by comma or pipe
  • excludes - List of files to exclude, separated by comma or pipe
  • useDefaultExcludes - enable SCM file exclusions, enbled by default.
  • failFast - Should the rule fail after the first error or should the errors be aggregated. Default true.
  • acceptAsciiSubset - a boolean, accept US-ASCII as an subset of UTF-8 and ISO-8859-1/-15, default false.
  • acceptIso8859Subset - a boolean, accept ISO-8859-1 as a subset of ISO-8859-15, default false.

Sample Plugin Configuration:

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>3.4.1</version> <!-- find the latest version at http://maven.apache.org/plugins/maven-enforcer-plugin/ -->
        <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>
                  <failFast>false</failFast>
                </requireEncoding>
              </rules>
            </configuration>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>extra-enforcer-rules</artifactId>
            <version>1.8.0</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

Trademarks

Apache, Apache Maven, Maven and the Apache feather logo are trademarks of The Apache Software Foundation.