我有一个父maven项目和该项目中的4个模块:
现在我想提出一些自定义规则,说明不存在以字符串“master-”开头的项目版本或依赖版本。此规则适用于依赖于eBill软件的所有外部项目。
所以我创建了一个名为customRule的新模块,其父级也是eBill Software。我跟着writing-a-custom-rule,我的规则类在新模块中。
模块customRule中的CustomRule.java的相关部分:
MavenProject project = (MavenProject) helper.evaluate( "${project}" );
Set<Artifact> artifacts = project.getArtifacts();
boolean containsInvalid = artifacts.stream()
.filter(item -> item.getVersion()
.startsWith("master-"))
.anyMatch(item -> true);
if(containsInvalid) {
this.shouldIfail = true;
}
customRule模块pom.xml的相关部分:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<id>enforce-no-master-versions</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<myCustomRule implementation="org.apache.customRule.CustomRule">
<shouldIfail>false</shouldIfail>
</myCustomRule>
</rules>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
现在我想在父模块eBill软件中访问此自定义规则:
那么我应该在其pom.xml和外部项目的pom.xml中输入什么才能获得适用于依赖于eBill软件的所有外部项目的自定义规则。