Class DependOnAllProjects
java.lang.Object
org.apache.maven.enforcer.rule.api.AbstractEnforcerRule
com.github.mikkoi.maven_enforcer_plugin.rule.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 String
Convert string for matching.static boolean
dependenciesAreEquals
(org.apache.maven.model.Dependency a, org.apache.maven.model.Dependency b) Compare two Dependency objects.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?void
The rule logic.void
execute()
The main entry point for rule.static String
formatDependency
(org.apache.maven.model.Dependency dependency, String indent) Format Dependency object to XML snippet.org.apache.maven.enforcer.rule.api.EnforcerLogger
getLog()
static boolean
isProjectIncluded
(List<String> includes, List<String> excludes, org.apache.maven.project.MavenProject mavenProject) Match projects with includes and excludes.static boolean
projectsAreEquals
(org.apache.maven.project.MavenProject a, org.apache.maven.project.MavenProject b) Compare two MavenProject objects.static boolean
projectsContains
(Iterable<org.apache.maven.project.MavenProject> projects, String projectName) Does any of the projects in Maven Reactor build match with this project name?static org.apache.maven.model.Dependency
projectToDependency
(org.apache.maven.project.MavenProject mavenProject) Convert MavenProject to Dependency object.void
setLog
(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
-
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 Maven Reactor build match with this project name? Name must not have a wildcard!- Parameters:
projects
- Iterable of MavenProject objectsprojectName
- Project name, e.g. "artifactId", "groupId:artifactId", "groupId:artifactId:packingType".- 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:
execute
in 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:
setLog
in interfaceorg.apache.maven.enforcer.rule.api.EnforcerRuleBase
-
getLog
public org.apache.maven.enforcer.rule.api.EnforcerLogger getLog()
-