Use when you need to add or configure Maven plugins in your pom.xml — including quality tools (enforcer, surefire, failsafe, jacoco, pitest, spotbugs, pmd), security scanning (OWASP), code formatting (Spotless), version management, container image build (Jib), build information tracking, and benchmarking (JMH) — through a consultative, modular step-by-step approach that only adds what you actually need. This should trigger for requests such as Add Maven plugins in pom.xml; Improve Maven plugins in pom.xml. Part of cursor-rules-java project
72
—
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Configure Maven plugins and profiles in pom.xml using a structured, question-driven process that preserves existing configuration. This is an interactive SKILL.
What is covered in this Skill?
Maven plugins:
Maven profiles:
Before applying plugin recommendations, ensure the project is in a valid state. Use a structured, question-driven process that preserves existing configuration and adds only what the user selects.
./mvnw validate or mvn validate before applying any plugin recommendationsRun ./mvnw validate or mvn validate and stop if validation fails.
Before making any changes to pom.xml:
Scan existing plugins in <build><plugins>, <build><pluginManagement>, and <reporting><plugins>.
Scan existing properties in <properties>.
Scan existing profiles in <profiles>.
Identify conflicts between existing configuration and possible additions.
Preserve all existing plugins, properties, and profiles.
Ask the user before enhancing any existing plugin, property, reporting entry, support file, or profile.
Skip duplicate additions unless the user explicitly requests an enhancement.
Check Maven Wrapper before plugin changes
Check for Maven Wrapper files in the project root:
mvnw and mvnw.cmd.mvn/wrapper/maven-wrapper.propertiesIf Maven Wrapper is not present, stop and ask:
"I notice this project doesn't have Maven Wrapper configured. The Maven Wrapper ensures everyone uses the same Maven version, improving build consistency across different environments. Would you like me to install it? (y/n)"
Wait for the user's response before asking any other question. If the user says "y", install it:
mvn wrapper:wrapperRun this XML-included question flow before reading any plugin/profile implementation reference. Ask one question at a time, wait for the user's answer, and record selected plugins, profiles, and conditional values before continuing.
Question 1: What type of Java project is this?
Options:
Question 2: Which Java version does your project target?
Options:
Question 3: What build and quality aspects are important for your project?
Options:
Note: When "Cyclomatic Complexity" is selected, Step 20 will create a PMD ruleset file and profile. The ruleset location depends on project structure: src/main/pmd/pmd-cyclomatic-complexity.xml (mono-module) or pmd/pmd-cyclomatic-complexity.xml (multi-module).
Question 3.1 (conditional): What is your target container image for Jib?
Note: This question is only asked if "Container image build (Jib)" was selected in question 3.
gcr.io/my-project/my-app, docker.io/username/myimage, or myimage for local Docker<to><image> configurationQuestion 4: What is your target coverage threshold?
Options:
Note: This question is only asked if "Code coverage reporting (JaCoCo)" was selected in question 3.
Question 5: Do you want to configure Sonar/SonarCloud integration?** (y/n)
Note: This question is only asked if "Static code analysis (SpotBugs, Sonar)" was selected in question 3.
If yes, please provide the following information:
Question 5.1: What is your Sonar organization identifier?
my-github-user or my-company-orgQuestion 5.2: What is your Sonar project key?
GITHUB_USER_REPOSITORY_NAME (e.g., john-doe_my-java-project)john-doe_awesome-java-libQuestion 5.3: What is your Sonar project display name?
Awesome Java Library or My Microservice APIQuestion 5.4: Which Sonar service are you using? (conditional)
Note: This question is only asked if Sonar configuration was enabled in question 5.
Options:
If SonarQube Server: Please provide your SonarQube server URL (e.g., https://sonar.mycompany.com)
After all applicable questions are answered, confirm the selections and map them to references:
references/112-java-maven-plugins-maven-compiler-plugin.md.references/112-java-maven-plugins-maven-enforcer-plugin.md.references/112-java-maven-plugins-maven-surefire-plugin.md.references/112-java-maven-plugins-maven-failsafe-plugin.md.references/112-java-maven-plugins-maven-surefire-report-plugin.md and references/112-java-maven-plugins-maven-jxr-plugin.md.references/112-java-maven-plugins-spotless-maven-plugin.md.references/112-java-maven-plugins-versions-maven-plugin.md.references/112-java-maven-plugins-git-commit-id-maven-plugin.md.references/112-java-maven-plugins-flatten-maven-plugin.md.references/112-java-maven-plugins-jib-maven-plugin.md.references/112-java-maven-plugins-maven-dependency-plugin.md.references/112-java-maven-plugins-profile-jacoco.md.references/112-java-maven-plugins-profile-pitest.md.references/112-java-maven-plugins-profile-security.md.references/112-java-maven-plugins-profile-static-analysis.md.references/112-java-maven-plugins-profile-sonar.md.references/112-java-maven-plugins-profile-jmh.md.references/112-java-maven-plugins-profile-cyclomatic-complexity.md.Add selected plugins and profiles without removing existing ones, preserving project structure and compatibility. Add only the Maven properties, plugin configuration, profile configuration, reporting plugins, and support files required by the selected references.
Report added plugins/profiles, rationale, and recommended follow-up commands or checks.
For detailed guidance, examples, and constraints, see:
86eb63d
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.