This module is part of the Apache Sling project.
It provides additional Maven Enforcer rules.
Checks that the runtime classpath (e.g. used by Maven Plugins via the Plugin Classloader or by the Appassembler Maven Plugin's assemble
goal) contains all transitive provided dependencies.
As those are not transitively inherited they need to be declared explicitly in the pom.xml of the using Maven project.
excludes
- a list of dependencies to skip. Their transitive dependencies are not evaluated either. The format is groupId[:artifactId][:version][:type][:scope][:classifier]
where artifactId
, version
, type
, scope
and classifier
are optional. Wildcards (*
) may be used to replace an entire or just parts of a section. Examples:org.apache.maven
(everything with the given group)org.apache.maven:myArtifact
org.apache.maven:*:1.2
(exclude version 1.2 and above, equivalent to [1.2,) )org.apache.maven:*:[1.2]
(explicit exclude of version 1.2)<project> [...] <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>3.0.0</version> <dependencies> <dependency> <groupId>org.apache.sling</groupId> <artifactId>maven-enforcer-rules</artifactId> <version>LATEST</version> </dependency> </dependencies> <executions> <execution> <id>enforce-complete-runtime-classpath</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireTransitiveProvidedDependenciesInRuntimeClasspath implementation="org.apache.sling.maven.enforcer.RequireTransitiveProvidedDependenciesInRuntimeClasspath"> <excludes> <exclude>javax.servlet:javax.servlet-api</exclude> </excludes> </requireTransitiveProvidedDependenciesInRuntimeClasspath> </rules> <fail>true</fail> </configuration> </execution> </executions> </plugin> </plugins> </build> [...] </project>