Class EnforceBytecodeVersion
- java.lang.Object
-
- org.apache.maven.plugins.enforcer.AbstractMojoHausEnforcerRule
-
- org.apache.maven.plugins.enforcer.AbstractResolveDependencies
-
- org.apache.maven.plugins.enforcer.EnforceBytecodeVersion
-
- All Implemented Interfaces:
org.apache.maven.enforcer.rule.api.EnforcerRule,org.apache.maven.enforcer.rule.api.EnforcerRule2
public class EnforceBytecodeVersion extends AbstractResolveDependencies
Enforcer rule that will check the bytecode version of each class of each dependency.- Since:
- 1.0-alpha-4
- See Also:
- Java class file general layout
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.maven.plugins.enforcer.AbstractResolveDependencies
AbstractResolveDependencies.IgnorableDependency
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String[]DEFAULT_CLASSES_IGNORE_BEFORE_JDK_9Default ignores when validating against jdk < 9 becausemodule-info.classwill always have level 1.9.private java.util.List<java.lang.String>excludesprivate java.util.List<AbstractResolveDependencies.IgnorableDependency>ignorableDependenciesprivate java.lang.String[]ignoreClassesList of classes to ignore.private java.lang.String[]ignoredScopesOptional list of dependency scopes to ignore.private booleanignoreOptionalsIgnore all dependencies which have<optional>true</optional>.private java.util.List<java.lang.String>includesprivate static java.util.Map<java.lang.String,java.lang.Integer>JDK_TO_MAJOR_VERSION_NUMBER_MAPPING(package private) intmaxJavaMajorVersionNumberIf unsure, don't use that parameter.(package private) intmaxJavaMinorVersionNumberThis parameter is here for potentially advanced use cases, but it seems like it is actually always 0.private java.lang.StringmaxJdkVersionJDK version as used for example in the maven-compiler-plugin: 1.5, 1.6 and so on.private java.lang.Stringmessageprivate java.util.regex.PatternMULTIRELEASEprivate booleansearchTransitiveSpecify if transitive dependencies should be searched (default) or only look at direct dependencies.
-
Constructor Summary
Constructors Constructor Description EnforceBytecodeVersion()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.util.Set<org.apache.maven.artifact.Artifact>checkDependencies(java.util.Set<org.apache.maven.artifact.Artifact> dependencies, org.apache.maven.plugin.logging.Log log)private voidcloseQuietly(java.util.jar.JarFile jarFile)private voidcomputeParameters()private java.util.Set<org.apache.maven.artifact.Artifact>filterArtifacts(java.util.Set<org.apache.maven.artifact.Artifact> dependencies)protected java.lang.CharSequencegetErrorMessage(org.apache.maven.artifact.Artifact artifact)protected voidhandleArtifacts(java.util.Set<org.apache.maven.artifact.Artifact> artifacts)private java.lang.StringisBadArtifact(org.apache.maven.artifact.Artifact a)protected booleanisSearchTransitive()(package private) static java.lang.StringrenderVersion(int major, int minor)voidsetMaxJavaMajorVersionNumber(int maxJavaMajorVersionNumber)voidsetMaxJavaMinorVersionNumber(int maxJavaMinorVersionNumber)voidsetSearchTransitive(boolean theSearchTransitive)Sets the search transitive.-
Methods inherited from class org.apache.maven.plugins.enforcer.AbstractResolveDependencies
asRegex, execute, getCacheId, getLog, isCacheable, isResultValid
-
Methods inherited from class org.apache.maven.plugins.enforcer.AbstractMojoHausEnforcerRule
getLevel, setLevel
-
-
-
-
Field Detail
-
JDK_TO_MAJOR_VERSION_NUMBER_MAPPING
private static final java.util.Map<java.lang.String,java.lang.Integer> JDK_TO_MAJOR_VERSION_NUMBER_MAPPING
-
DEFAULT_CLASSES_IGNORE_BEFORE_JDK_9
private static final java.lang.String[] DEFAULT_CLASSES_IGNORE_BEFORE_JDK_9
Default ignores when validating against jdk < 9 becausemodule-info.classwill always have level 1.9.
-
MULTIRELEASE
private final java.util.regex.Pattern MULTIRELEASE
-
message
private java.lang.String message
-
maxJdkVersion
private java.lang.String maxJdkVersion
JDK version as used for example in the maven-compiler-plugin: 1.5, 1.6 and so on. If in need of more precise configuration please seemaxJavaMajorVersionNumberandmaxJavaMinorVersionNumberMandatory ifmaxJavaMajorVersionNumbernot specified.
-
maxJavaMajorVersionNumber
int maxJavaMajorVersionNumber
If unsure, don't use that parameter. Better look atmaxJdkVersion. Mandatory ifmaxJdkVersionis not specified. see http://en.wikipedia.org/wiki/Java_class_file#General_layout
-
maxJavaMinorVersionNumber
int maxJavaMinorVersionNumber
This parameter is here for potentially advanced use cases, but it seems like it is actually always 0.
-
searchTransitive
private boolean searchTransitive
Specify if transitive dependencies should be searched (default) or only look at direct dependencies.
-
includes
private java.util.List<java.lang.String> includes
- See Also:
AbstractStrictPatternArtifactFilter
-
excludes
private java.util.List<java.lang.String> excludes
- See Also:
AbstractStrictPatternArtifactFilter
-
ignoreClasses
private java.lang.String[] ignoreClasses
List of classes to ignore. Wildcard at the end accepted
-
ignoredScopes
private java.lang.String[] ignoredScopes
Optional list of dependency scopes to ignore.testandprovidedmake sense here.
-
ignoreOptionals
private boolean ignoreOptionals
Ignore all dependencies which have<optional>true</optional>.- Since:
- 1.2
-
ignorableDependencies
private java.util.List<AbstractResolveDependencies.IgnorableDependency> ignorableDependencies
-
-
Method Detail
-
renderVersion
static java.lang.String renderVersion(int major, int minor)
-
handleArtifacts
protected void handleArtifacts(java.util.Set<org.apache.maven.artifact.Artifact> artifacts) throws org.apache.maven.enforcer.rule.api.EnforcerRuleException- Specified by:
handleArtifactsin classAbstractResolveDependencies- Throws:
org.apache.maven.enforcer.rule.api.EnforcerRuleException
-
isSearchTransitive
protected boolean isSearchTransitive()
- Overrides:
isSearchTransitivein classAbstractResolveDependencies
-
getErrorMessage
protected java.lang.CharSequence getErrorMessage(org.apache.maven.artifact.Artifact artifact)
-
computeParameters
private void computeParameters() throws org.apache.maven.enforcer.rule.api.EnforcerRuleException- Throws:
org.apache.maven.enforcer.rule.api.EnforcerRuleException
-
checkDependencies
protected java.util.Set<org.apache.maven.artifact.Artifact> checkDependencies(java.util.Set<org.apache.maven.artifact.Artifact> dependencies, org.apache.maven.plugin.logging.Log log) throws org.apache.maven.enforcer.rule.api.EnforcerRuleException- Throws:
org.apache.maven.enforcer.rule.api.EnforcerRuleException
-
isBadArtifact
private java.lang.String isBadArtifact(org.apache.maven.artifact.Artifact a) throws org.apache.maven.enforcer.rule.api.EnforcerRuleException- Throws:
org.apache.maven.enforcer.rule.api.EnforcerRuleException
-
closeQuietly
private void closeQuietly(java.util.jar.JarFile jarFile)
-
setMaxJavaMajorVersionNumber
public void setMaxJavaMajorVersionNumber(int maxJavaMajorVersionNumber)
-
setMaxJavaMinorVersionNumber
public void setMaxJavaMinorVersionNumber(int maxJavaMinorVersionNumber)
-
setSearchTransitive
public void setSearchTransitive(boolean theSearchTransitive)
Sets the search transitive.- Parameters:
theSearchTransitive- the searchTransitive to set
-
filterArtifacts
private java.util.Set<org.apache.maven.artifact.Artifact> filterArtifacts(java.util.Set<org.apache.maven.artifact.Artifact> dependencies)
-
-