Require Release Dependencies
This rule checks the dependencies and fails if any snapshots are found.
The following parameters are supported by this rule:
- searchTransitive - if transitive dependencies should be checked. Default: true
- message - an optional message to the user if the rule fails.
- onlyWhenRelease - if this rule should only be executed when the version is a non-SNAPSHOT version. Default: false
- failWhenParentIsSnapshot - if the parent should be checked. Default: true
- includes - List of dependency patterns to include when checking for snapshot versions.
- excludes - List of dependency patterns to exclude when checking for snapshot versions
The include/exclude pattern looks like groupId:artifactId:version:type:scope
and supports wildcards(*).
Sample Plugin Configuration:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.6.0</version>
<executions>
<execution>
<id>enforce-no-snapshots</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireReleaseDeps>
<message>No Snapshots Allowed!</message>
</requireReleaseDeps>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
</project>
Includes/Excludes Plugin Configuration:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.6.0</version>
<executions>
<execution>
<id>enforce-no-snapshots</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireReleaseDeps>
<message>No Snapshots Allowed!</message>
<excludes>
<exclude>org.apache.maven:maven-core</exclude>
<exclude>org.apache.maven.plugins:*</exclude>
</excludes>
</requireReleaseDeps>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
</project>