Skip to content

Commit 2952e19

Browse files
committed
Attach enforcer rules to enforce-rules execution
Putting them into global configuration causes them to be appended to every execution of the enforcer plugin, which means they get run multiple times if a downstream project includes additional executions to perform additional checks.
1 parent d579d0a commit 2952e19

File tree

1 file changed

+97
-97
lines changed

1 file changed

+97
-97
lines changed

pom.xml

+97-97
Original file line numberDiff line numberDiff line change
@@ -859,106 +859,106 @@
859859
<goals>
860860
<goal>enforce</goal>
861861
</goals>
862-
</execution>
863-
</executions>
864-
<configuration>
865-
<rules>
866-
<!--
867-
Standard Rules
868-
https://maven.apache.org/enforcer/enforcer-rules/
869-
-->
870-
<requireMavenVersion>
871-
<version>${scijava.mvn.version}</version>
872-
</requireMavenVersion>
873-
<requirePluginVersions>
874-
<message>Plugins need to be versioned!</message>
875-
</requirePluginVersions>
876-
<requireJavaVersion>
877-
<version>${scijava.jvm.build.version}</version>
878-
</requireJavaVersion>
879-
880-
<!--
881-
Extra Enforcer Rules
882-
org.codehaus.mojo:extra-enforcer-rules
883-
https://www.mojohaus.org/extra-enforcer-rules/
884-
-->
885-
886-
<!--
887-
Ensure no two dependencies ship the same class.
888-
Otherwise, much havoc may be wreaked at runtime.
889-
-->
890-
<banDuplicateClasses>
891-
<message>No Duplicate Classes Allowed!
862+
<configuration>
863+
<rules>
864+
<!--
865+
Standard Rules
866+
https://maven.apache.org/enforcer/enforcer-rules/
867+
-->
868+
<requireMavenVersion>
869+
<version>${scijava.mvn.version}</version>
870+
</requireMavenVersion>
871+
<requirePluginVersions>
872+
<message>Plugins need to be versioned!</message>
873+
</requirePluginVersions>
874+
<requireJavaVersion>
875+
<version>${scijava.jvm.build.version}</version>
876+
</requireJavaVersion>
877+
878+
<!--
879+
Extra Enforcer Rules
880+
org.codehaus.mojo:extra-enforcer-rules
881+
https://www.mojohaus.org/extra-enforcer-rules/
882+
-->
883+
884+
<!--
885+
Ensure no two dependencies ship the same class.
886+
Otherwise, much havoc may be wreaked at runtime.
887+
-->
888+
<banDuplicateClasses>
889+
<message>No Duplicate Classes Allowed!
892890
- For duplicate transitive dependencies, add dependency exclusions.
893891
- For duplications between direct dependencies, resolve or add
894892
ignored classes to this rule's configuration.</message>
895-
<findAllDuplicates>true</findAllDuplicates>
896-
<ignoreClasses>${allowedDuplicateClasses}</ignoreClasses>
897-
</banDuplicateClasses>
898-
899-
<!--
900-
Require developers and contributors to use SciJava team roles.
901-
See: https://imagej.net/Team
902-
-->
903-
<requireDeveloperRoles>
904-
<validRoles>${scijava.team.roles}</validRoles>
905-
</requireDeveloperRoles>
906-
<requireContributorRoles>
907-
<validRoles>${scijava.team.roles}</validRoles>
908-
</requireContributorRoles>
909-
910-
<!--
911-
Fail if a dependency requires a too-new version of Java.
912-
-->
913-
<enforceBytecodeVersion>
914-
<maxJdkVersion>${scijava.jvm.version}</maxJdkVersion>
915-
<excludes>
916-
<exclude>com.headius:invokebinder</exclude>
917-
<exclude>com.sun:tools</exclude>
918-
</excludes>
919-
<ignoreClasses>
920-
<ignoreClass>module-info</ignoreClass>
921-
</ignoreClasses>
922-
<ignoredScopes>
923-
<ignoredScope>test</ignoredScope>
924-
</ignoredScopes>
925-
</enforceBytecodeVersion>
926-
927-
<!--
928-
SciJava Maven Plugin
929-
org.scijava:scijava-maven-plugin
930-
https://github.com/scijava/scijava-maven-plugin
931-
-->
932-
933-
<!-- Require inheriting POMs to populate key elements. -->
934-
<requireElements implementation="org.scijava.maven.plugin.enforcer.RequireElements">
935-
<elements>
936-
<element>name</element>
937-
<element>description</element>
938-
<element>url</element>
939-
<element>inceptionYear</element>
940-
<element>organization</element>
941-
<element>licenses</element>
942-
<element>developers</element>
943-
<element>contributors</element>
944-
<element>mailingLists</element>
945-
<element>scm</element>
946-
<element>issueManagement</element>
947-
<element>ciManagement</element>
948-
<element>properties//license.licenseName</element>
949-
<element>properties//license.copyrightOwners</element>
950-
</elements>
951-
</requireElements>
952-
953-
<!--
954-
Require builds to be reproducible.
955-
This means no snapshot dependencies!
956-
-->
957-
<requireReproducibleBuilds implementation="org.scijava.maven.plugin.enforcer.RequireReproducibleBuilds">
958-
<groupIds>${scijava.groupIds}</groupIds>
959-
</requireReproducibleBuilds>
960-
</rules>
961-
</configuration>
893+
<findAllDuplicates>true</findAllDuplicates>
894+
<ignoreClasses>${allowedDuplicateClasses}</ignoreClasses>
895+
</banDuplicateClasses>
896+
897+
<!--
898+
Require developers and contributors to use SciJava team roles.
899+
See: https://imagej.net/Team
900+
-->
901+
<requireDeveloperRoles>
902+
<validRoles>${scijava.team.roles}</validRoles>
903+
</requireDeveloperRoles>
904+
<requireContributorRoles>
905+
<validRoles>${scijava.team.roles}</validRoles>
906+
</requireContributorRoles>
907+
908+
<!--
909+
Fail if a dependency requires a too-new version of Java.
910+
-->
911+
<enforceBytecodeVersion>
912+
<maxJdkVersion>${scijava.jvm.version}</maxJdkVersion>
913+
<excludes>
914+
<exclude>com.headius:invokebinder</exclude>
915+
<exclude>com.sun:tools</exclude>
916+
</excludes>
917+
<ignoreClasses>
918+
<ignoreClass>module-info</ignoreClass>
919+
</ignoreClasses>
920+
<ignoredScopes>
921+
<ignoredScope>test</ignoredScope>
922+
</ignoredScopes>
923+
</enforceBytecodeVersion>
924+
925+
<!--
926+
SciJava Maven Plugin
927+
org.scijava:scijava-maven-plugin
928+
https://github.com/scijava/scijava-maven-plugin
929+
-->
930+
931+
<!-- Require inheriting POMs to populate key elements. -->
932+
<requireElements implementation="org.scijava.maven.plugin.enforcer.RequireElements">
933+
<elements>
934+
<element>name</element>
935+
<element>description</element>
936+
<element>url</element>
937+
<element>inceptionYear</element>
938+
<element>organization</element>
939+
<element>licenses</element>
940+
<element>developers</element>
941+
<element>contributors</element>
942+
<element>mailingLists</element>
943+
<element>scm</element>
944+
<element>issueManagement</element>
945+
<element>ciManagement</element>
946+
<element>properties//license.licenseName</element>
947+
<element>properties//license.copyrightOwners</element>
948+
</elements>
949+
</requireElements>
950+
951+
<!--
952+
Require builds to be reproducible.
953+
This means no snapshot dependencies!
954+
-->
955+
<requireReproducibleBuilds implementation="org.scijava.maven.plugin.enforcer.RequireReproducibleBuilds">
956+
<groupIds>${scijava.groupIds}</groupIds>
957+
</requireReproducibleBuilds>
958+
</rules>
959+
</configuration>
960+
</execution>
961+
</executions>
962962
</plugin>
963963

964964
<plugin>

0 commit comments

Comments
 (0)