Class DependOnAllProjects
java.lang.Object
org.apache.maven.enforcer.rule.api.AbstractEnforcerRule
com.github.mikkoi.maven.enforcer.rules.DependOnAllProjects
- All Implemented Interfaces:
org.apache.maven.enforcer.rule.api.EnforcerRuleBase
@Named("dependOnAllProjects")
public class DependOnAllProjects
extends org.apache.maven.enforcer.rule.api.AbstractEnforcerRule
Maven Enforcer Custom Rule.
-
Constructor Summary
ConstructorsConstructorDescriptionDependOnAllProjects(org.apache.maven.execution.MavenSession session) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionstatic StringConvert string for matching.static booleandependenciesAreEquals(org.apache.maven.model.Dependency a, org.apache.maven.model.Dependency b) Compare two Dependency objects.static booleandependenciesContains(Iterable<org.apache.maven.model.Dependency> projects, org.apache.maven.project.MavenProject project) Does the list (Iterable) of Dependency objects contain the MavenProject?voidThe rule logic.voidexecute()The main entry point for rule.static StringformatDependency(org.apache.maven.model.Dependency dependency, String indent) Format Dependency object to XML snippet.org.apache.maven.enforcer.rule.api.EnforcerLoggergetLog()static booleanisProjectIncluded(List<String> includes, List<String> excludes, org.apache.maven.project.MavenProject mavenProject) Match projects with includes and excludes.static booleanprojectMatchesWithDefinition(org.apache.maven.project.MavenProject project, String projectDefinition) Does the MavenProject match with this jar name definition?static booleanprojectsAreEquals(org.apache.maven.project.MavenProject a, org.apache.maven.project.MavenProject b) Compare two MavenProject objects.static booleanprojectsContains(Iterable<org.apache.maven.project.MavenProject> projects, String projectName) Does any of the projects in the argument (Maven Reactor build) match with this project name?static org.apache.maven.model.DependencyprojectToDependency(org.apache.maven.project.MavenProject mavenProject) Convert MavenProject to Dependency object.voidsetErrorIfUnknownProject(String errorIfUnknownProject) Set errorIfUnknownProject.voidsetExcludes(List<String> excludes) Set excludes.voidsetIncludeRootProject(String includeRootProject) Set includeRootProject.voidsetIncludes(List<String> includes) Set includes.voidsetLog(org.apache.maven.enforcer.rule.api.EnforcerLogger arg0) toString()String representation of the rule.Methods inherited from class org.apache.maven.enforcer.rule.api.AbstractEnforcerRule
getCacheId, getLevel, getRuleName
-
Constructor Details
-
DependOnAllProjects
@Inject public DependOnAllProjects(org.apache.maven.execution.MavenSession session) Constructor.- Parameters:
session- Initialized MavenSession object.
-
-
Method Details
-
setIncludes
Set includes.- Parameters:
includes- the includes
-
setExcludes
Set excludes.- Parameters:
excludes- the excludes
-
setErrorIfUnknownProject
Set errorIfUnknownProject.- Parameters:
errorIfUnknownProject- the errorIfUnknownProject
-
setIncludeRootProject
Set includeRootProject.- Parameters:
includeRootProject- the includeRootProject
-
formatDependency
Format Dependency object to XML snippet. User can simply copy-paste this to the project.- Parameters:
dependency- Dependency objectindent- Indentation string, e.g. " "- Returns:
- Formatted XML snippet
-
convertStringForMatching
Convert string for matching.- Parameters:
s- String- Returns:
- converted string
-
projectsAreEquals
public static boolean projectsAreEquals(org.apache.maven.project.MavenProject a, org.apache.maven.project.MavenProject b) Compare two MavenProject objects. GroupId, ArtifactId, Version and Packaging must match.- Parameters:
a- MavenProject ab- MavenProject b- Returns:
- true if projects are equal
-
dependenciesAreEquals
public static boolean dependenciesAreEquals(org.apache.maven.model.Dependency a, org.apache.maven.model.Dependency b) Compare two Dependency objects. GroupId, ArtifactId, Version and Type must match.- Parameters:
a- Dependency ab- Dependency b- Returns:
- true if dependencies are equal
-
dependenciesContains
public static boolean dependenciesContains(Iterable<org.apache.maven.model.Dependency> projects, org.apache.maven.project.MavenProject project) Does the list (Iterable) of Dependency objects contain the MavenProject?- Parameters:
projects- Iterable of Dependency objectsproject- a Maven project object- Returns:
- true if project is found
-
projectsContains
public static boolean projectsContains(Iterable<org.apache.maven.project.MavenProject> projects, String projectName) Does any of the projects in the argument (Maven Reactor build) match with this project name? Attn. No wildcards are supported in projectName.- Parameters:
projects- Iterable of MavenProject objectsprojectName- Project name, e.g. "artifactId", "groupId:artifactId", "groupId:artifactId:packagingType".- Returns:
- Boolean
-
projectMatchesWithDefinition
public static boolean projectMatchesWithDefinition(org.apache.maven.project.MavenProject project, String projectDefinition) Does the MavenProject match with this jar name definition? Attn. If definition contains only artifactId, groupId and packagingType are ignored. Attn. If definition contains groupId and artifactId, packagingType is ignored. Attn. If definition contains groupId, artifactId and packagingType, all are matched. Attn. No wildcards are supported here.- Parameters:
project- MavenProject objectprojectDefinition- Project name, e.g. "artifactId", "groupId:artifactId", "groupId:artifactId:packagingType".- Returns:
- Boolean
-
projectToDependency
public static org.apache.maven.model.Dependency projectToDependency(org.apache.maven.project.MavenProject mavenProject) Convert MavenProject to Dependency object.- Parameters:
mavenProject- MavenProject object- Returns:
- Dependency object
-
isProjectIncluded
public static boolean isProjectIncluded(List<String> includes, List<String> excludes, org.apache.maven.project.MavenProject mavenProject) Match projects with includes and excludes. Includes are * by default. Then excludes are excluded from the includes.- Parameters:
includes- Included projects. Default: *excludes- Excluded projects. Default: nonemavenProject- Initialized MavenProject object.- Returns:
- True or false.
-
dependOnAllProjects
public void dependOnAllProjects() throws org.apache.maven.enforcer.rule.api.EnforcerRuleExceptionThe rule logic. Collect all projects in the build and filter according to includes/excludes. Match the list with the dependencies of the current project. If the two lists do not match, Raise EnforcerRuleException- Throws:
org.apache.maven.enforcer.rule.api.EnforcerRuleException- if rule fails.
-
execute
public void execute() throws org.apache.maven.enforcer.rule.api.EnforcerRuleExceptionThe main entry point for rule.- Specified by:
executein classorg.apache.maven.enforcer.rule.api.AbstractEnforcerRule- Throws:
org.apache.maven.enforcer.rule.api.EnforcerRuleException- if rule fails.
-
toString
String representation of the rule. Output is used in verbose Maven logs, can help during investigate problems. -
setLog
public void setLog(org.apache.maven.enforcer.rule.api.EnforcerLogger arg0) - Specified by:
setLogin interfaceorg.apache.maven.enforcer.rule.api.EnforcerRuleBase
-
getLog
public org.apache.maven.enforcer.rule.api.EnforcerLogger getLog()
-