Class BannedDependenciesBase
java.lang.Object
org.apache.maven.enforcer.rule.api.AbstractEnforcerRuleBase
org.apache.maven.enforcer.rule.api.AbstractEnforcerRule
org.apache.maven.enforcer.rules.AbstractStandardEnforcerRule
org.apache.maven.enforcer.rules.dependency.BannedDependenciesBase
- All Implemented Interfaces:
EnforcerRuleBase
- Direct Known Subclasses:
BannedDependencies
,RequireReleaseDeps
Abstract base class for rules which validate the transitive
dependency tree by traversing all children and validating every
dependency artifact.
-
Field Summary
FieldsModifier and TypeFieldDescriptionSpecify the banned dependencies.Specify the allowed dependencies.private final ResolverUtil
private boolean
Specify if transitive dependencies should be searched (default) or only look at direct dependencies.private final org.apache.maven.execution.MavenSession
-
Constructor Summary
ConstructorsConstructorDescriptionBannedDependenciesBase
(org.apache.maven.execution.MavenSession session, ResolverUtil resolverUtil) -
Method Summary
Modifier and TypeMethodDescriptionvoid
execute()
This is the interface into the rule.protected abstract String
Gets the excludes.Gets the includes.protected org.apache.maven.execution.MavenSession
boolean
void
setExcludes
(List<String> theExcludes) Specify the banned dependencies.void
setIncludes
(List<String> theIncludes) Specify the allowed dependencies.void
setSearchTransitive
(boolean theSearchTransitive) Sets the search transitive.protected abstract boolean
validate
(org.apache.maven.artifact.Artifact dependency) Validates a dependency artifact if it fulfills the enforcer ruleprotected boolean
validate
(org.eclipse.aether.graph.DependencyNode node, int level, StringBuilder messageBuilder) Methods inherited from class org.apache.maven.enforcer.rules.AbstractStandardEnforcerRule
formatLocation, getMessage, setMessage
Methods inherited from class org.apache.maven.enforcer.rule.api.AbstractEnforcerRule
getCacheId, getLevel
Methods inherited from class org.apache.maven.enforcer.rule.api.AbstractEnforcerRuleBase
getLog, setLog
-
Field Details
-
excludes
Specify the banned dependencies. This can be a list of artifacts in the formatgroupId[:artifactId][:version]
. Any of the sections can be a wildcard by using '*' (ie group:*:1.0)
The rule will fail if any dependency matches any exclude, unless it also matches an include rule.- See Also:
-
includes
Specify the allowed dependencies. This can be a list of artifacts in the formatgroupId[:artifactId][:version]
. Any of the sections can be a wildcard by using '*' (ie group:*:1.0)
Includes override the exclude rules. It is meant to allow wide exclusion rules with wildcards and still allow a smaller set of includes.
For example, to ban all xerces except xerces-api -> exclude "xerces", include "xerces:xerces-api"- See Also:
-
searchTransitive
private boolean searchTransitiveSpecify if transitive dependencies should be searched (default) or only look at direct dependencies. -
session
private final org.apache.maven.execution.MavenSession session -
resolverUtil
-
-
Constructor Details
-
BannedDependenciesBase
BannedDependenciesBase(org.apache.maven.execution.MavenSession session, ResolverUtil resolverUtil)
-
-
Method Details
-
getSession
protected org.apache.maven.execution.MavenSession getSession() -
execute
Description copied from class:AbstractEnforcerRule
This is the interface into the rule. This method should throw an exception containing a reason message if the rule fails the check. The plugin will then decide based on the fail flag and rule level if it should stop or just log the message as a warning.- Specified by:
execute
in classAbstractEnforcerRule
- Throws:
EnforcerRuleException
- the enforcer rule exception
-
validate
protected boolean validate(org.eclipse.aether.graph.DependencyNode node, int level, StringBuilder messageBuilder) -
getErrorMessage
-
validate
protected abstract boolean validate(org.apache.maven.artifact.Artifact dependency) Validates a dependency artifact if it fulfills the enforcer rule- Parameters:
dependency
- dependency to be checked against the list of excludes- Returns:
true
if the dependency passes the rule,false
if the dependency triggers a validation error
-
setSearchTransitive
public void setSearchTransitive(boolean theSearchTransitive) Sets the search transitive.- Parameters:
theSearchTransitive
- the searchTransitive to set
-
getExcludes
Gets the excludes.- Returns:
- the excludes
-
setExcludes
Specify the banned dependencies. This can be a list of artifacts in the formatgroupId[:artifactId][:version]
. Any of the sections can be a wildcard by using '*' (ie group:*:1.0)
The rule will fail if any dependency matches any exclude, unless it also matches an include rule.- Parameters:
theExcludes
- the excludes to set- See Also:
-
getIncludes
Gets the includes.- Returns:
- the includes
-
setIncludes
Specify the allowed dependencies. This can be a list of artifacts in the formatgroupId[:artifactId][:version]
. Any of the sections can be a wildcard by using '*' (ie group:*:1.0)
Includes override the exclude rules. It is meant to allow wide exclusion rules with wildcards and still allow a smaller set of includes.
For example, to ban all xerces except xerces-api → exclude "xerces", include "xerces:xerces-api"- Parameters:
theIncludes
- the includes to set- See Also:
-
isSearchTransitive
public boolean isSearchTransitive()
-