Require Files Checksum

This rule checks that the specified file has an given checksum. For text files use Require Text Files Checksum instead.

The following parameters are supported by this rule:

  • message - an optional message to the user if the rule fails. If not set a default message will be used.
  • nonexistentFileMessage - an optional message to the user if the file is missing. If not set a default message will be used.
  • file - A file to check.
  • checksum - Expected file checksum.
  • type - Type of hashing algorithm to calculate the checksum. May be one of "md5", "sha1", "sha256", "sha384", or "sha512".

Sample Plugin Configuration:

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>3.5.0</version>
        <executions>
          <execution>
            <id>enforce-checksum</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireFileChecksum>
                  <file>${project.build.outputDirectory}/foo.txt</file>
                  <checksum>d41d8cd98f00b204e9800998ecf8427e</checksum>
                  <type>md5</type>
                </requireFileChecksum>
                <requireFileChecksum>
                  <file>${project.build.outputDirectory}/bar.txt</file>
                  <checksum>da39a3ee5e6b4b0d3255bfef95601890afd80709</checksum>
                  <type>sha1</type>
                </requireFileChecksum>
                <requireFileChecksum>
                  <file>${project.build.outputDirectory}/baz.txt</file>
                  <checksum>e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855</checksum>
                  <type>sha256</type>
                </requireFileChecksum>
                <requireFileChecksum>
                  <file>${project.build.outputDirectory}/qux.txt</file>
                  <checksum>38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b</checksum>
                  <type>sha384</type>
                </requireFileChecksum>
                <requireFileChecksum>
                  <file>${project.build.outputDirectory}/quux.txt</file>
                  <checksum>cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e</checksum>
                  <type>sha512</type>
                </requireFileChecksum>
              </rules>
              <fail>true</fail>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  [...]
</project>