@@ -63,6 +63,25 @@ assert parentPom.contains('<artifactId>maven-jar-plugin</artifactId>') : 'p
6363assert parentPom. contains(' <artifactId>maven-surefire-plugin</artifactId>' ) : ' parent must declare maven-surefire-plugin in pluginManagement'
6464assert parentPom. contains(' <skipIfEmpty>true</skipIfEmpty>' ) : ' maven-jar-plugin must configure skipIfEmpty=true'
6565
66+ // modernizer-maven-plugin: pinned, managed in pluginManagement, activated in build/plugins
67+ assert parentPom. contains(' <modernizer-maven-plugin.version>3.4.0</modernizer-maven-plugin.version>' ) \
68+ : ' parent must pin modernizer-maven-plugin version'
69+ assert parentPom. count(' <artifactId>modernizer-maven-plugin</artifactId>' ) == 2 \
70+ : ' modernizer-maven-plugin must appear twice: once in pluginManagement, once in active plugins'
71+
72+ def pmBlock = (parentPom =~ / (?s)<pluginManagement>.*<\/ pluginManagement>/ )[0 ]
73+ assert pmBlock. contains(' <groupId>org.gaul</groupId>' ) : ' modernizer must use groupId org.gaul'
74+ assert pmBlock. contains(' <artifactId>modernizer-maven-plugin</artifactId>' ) : ' modernizer must be declared in pluginManagement'
75+ assert pmBlock. contains(' <version>${modernizer-maven-plugin.version}</version>' ) : ' modernizer pluginManagement must reference the version property'
76+ assert pmBlock. contains(' <javaVersion>${java.version}</javaVersion>' ) : ' modernizer must configure javaVersion'
77+ assert pmBlock. contains(' <goal>modernizer</goal>' ) : ' modernizer pluginManagement must bind the modernizer goal'
78+
79+ // the active <plugins> section is what remains of <build> after removing <pluginManagement>
80+ def buildBlock = (parentPom =~ / (?s)<build>.*<\/ build>/ )[0 ]
81+ def activePlugins = buildBlock. replaceAll(/ (?s)<pluginManagement>.*<\/ pluginManagement>/ , ' ' )
82+ assert activePlugins. contains(' <artifactId>modernizer-maven-plugin</artifactId>' ) \
83+ : ' modernizer-maven-plugin must be activated in the parent <build><plugins> section'
84+
6685// ── 5. Modules are sorted alphabetically in <modules> ────────────────────────
6786
6887def moduleOrder = modules. sort(). collect { " <module>../${ it} </module>" }
0 commit comments