Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Audit Maven dependencies for outdated versions, security vulnerabilities, and conflicts. Use when user says "check dependencies", "audit dependencies", "outdated deps", or before releases.
.claude/skills/decebals-maven-dependency-audit/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 34% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 63% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 38% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 103% | 0% |
| case-18 | ✓→✓ | = Same ✓ | 68% | 0% |
Audit Maven dependencies for updates, vulnerabilities, and conflicts.
bashmvn versions:display-dependency-updates
[INFO] The following dependencies in Dependencies have newer versions:
[INFO] org.slf4j:slf4j-api ......................... 1.7.36 -> 2.0.9
[INFO] com.fasterxml.jackson.core:jackson-databind . 2.14.0 -> 2.16.1
[INFO] org.junit.jupiter:junit-jupiter ............. 5.9.0 -> 5.10.1| Category | Criteria | Action | |----------|----------|--------| | Security | CVE fix in newer version | Update ASAP | | Major | x.0.0 change | Review changelog, test thoroughly | | Minor | x.y.0 change | Usually safe, test | | Patch | x.y.z change | Safe, minimal testing |
bashmvn versions:display-plugin-updates
bashmvn dependency:tree
bashmvn dependency:tree -Dincludes=org.slf4j
Look for:
[INFO] +- com.example:module-a:jar:1.0:compile
[INFO] | \- org.slf4j:slf4j-api:jar:1.7.36:compile
[INFO] +- com.example:module-b:jar:1.0:compile
[INFO] | \- org.slf4j:slf4j-api:jar:2.0.9:compile (omitted for conflict)Flags:
(omitted for conflict) - Version conflict resolved by Maven(omitted for duplicate) - Same version, no issuebashmvn dependency:analyze
Output:
[WARNING] Used undeclared dependencies found:
[WARNING] org.slf4j:slf4j-api:jar:2.0.9:compile
[WARNING] Unused declared dependencies found:
[WARNING] commons-io:commons-io:jar:2.11.0:compileAdd to pom.xml:
xml<plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> <version>9.0.7</version> </plugin>
Run:
bashmvn dependency-check:check
Output: HTML report in target/dependency-check-report.html
bashmvn dependency:analyze-report
If using GitHub, enable Dependabot alerts in repository settings.
| CVSS Score | Severity | Action | |------------|----------|--------| | 9.0 - 10.0 | Critical | Update immediately | | 7.0 - 8.9 | High | Update within days | | 4.0 - 6.9 | Medium | Update within weeks | | 0.1 - 3.9 | Low | Update at convenience |
markdown## Dependency Audit Report **Project:** {project-name} **Date:** {date} **Total Dependencies:** {count} ### Security Issues | Dependency | Current | CVE | Severity | Fixed In | |------------|---------|-----|----------|----------| | log4j-core | 2.14.0 | CVE-2021-44228 | Critical | 2.17.1 | ### Outdated Dependencies #### Major Updates (Review Required) | Dependency | Current | Latest | Notes | |------------|---------|--------|-------| | slf4j-api | 1.7.36 | 2.0.9 | API changes, see migration guide | #### Minor/Patch Updates (Safe) | Dependency | Current | Latest | |------------|---------|--------| | junit-jupiter | 5.9.0 | 5.10.1 | | jackson-databind | 2.14.0 | 2.16.1 | ### Conflicts Detected - slf4j-api: 1.7.36 vs 2.0.9 (resolved to 2.0.9) ### Unused Dependencies - commons-io:commons-io:2.11.0 (consider removing) ### Recommendations 1. **Immediate:** Update log4j-core to fix CVE-2021-44228 2. **This sprint:** Update minor/patch versions 3. **Plan:** Evaluate slf4j 2.x migration
bash# Quick check mvn versions:display-dependency-updates -q # Full audit mvn versions:display-dependency-updates && \ mvn dependency:analyze && \ mvn dependency-check:check
bashmvn dependency:tree -Dincludes=commons-logging
xml<dependencyManagement> <dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>2.0.9</version> </dependency> </dependencies> </dependencyManagement>
xml<dependency> <groupId>com.example</groupId> <artifactId>some-library</artifactId> <version>1.0</version> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency>
-q (quiet) flag for less verbose output-Dincludes=groupId:artifactId when looking for specific deps| Task | Command | |------|---------| | Outdated deps | mvn versions:display-dependency-updates | | Outdated plugins | mvn versions:display-plugin-updates | | Dependency tree | mvn dependency:tree | | Find specific dep | mvn dependency:tree -Dincludes=groupId | | Unused deps | mvn dependency:analyze | | Security scan | mvn dependency-check:check | | Update versions | mvn versions:use-latest-releases | | Update snapshots | mvn versions:use-latest-snapshots |
bash# Update all to latest (use with caution!) mvn versions:use-latest-releases mvn versions:commit # or versions:revert
bash# Update specific dependency mvn versions:use-latest-versions -Dincludes=org.junit.jupiter
Other measured skills in the registry, with their headline benchmark lift.