
Java Maven
- 789 installs
- 40 repo stars
- Updated January 5, 2026
- pluginagentmarketplace/custom-plugin-java
java-maven is a Claude Code skill that generates, validates, and maintains correct Maven pom.xml configurations and Java project structures for developers who build Spring Boot and other JVM-based backend services.
About
java-maven is a JVM build configuration skill from pluginagentmarketplace/custom-plugin-java at version 1.0.0 that produces and validates Maven pom.xml files and Java project structures. The skill supports Spring Boot and general JVM services with configurable strict validation, auto-fix toggles, and environment-specific overrides for development and production. Developers reach for java-maven when scaffolding a new Java service, debugging dependency conflicts, or aligning pom.xml structure with team conventions. Integrations with git, linters, and formatters are enabled by default, and output includes markdown-formatted examples when include_examples is set.
- Generates production-ready Maven POM files with correct Java 21+ compiler settings
- Manages Spring Boot dependencies, properties, and packaging configurations
- Provides environment-specific overrides for development, production, and CI
- Enables or disables Git, linter, and formatter integrations automatically
- Outputs validated configuration in markdown with examples included
Java Maven by the numbers
- 789 all-time installs (skills.sh)
- +8 installs in the week ending Jul 26, 2026 (Skillselion tracking)
- Ranked #487 of 4,386 Backend & APIs skills by installs in the Skillselion catalog
- Security screen: MEDIUM risk (skills.sh audit)
- Data as of Jul 26, 2026 (Skillselion catalog sync)
npx skills add https://github.com/pluginagentmarketplace/custom-plugin-java --skill java-mavenAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 789 |
|---|---|
| repo stars | ★ 40 |
| Security audit | 3 / 3 scanners passed |
| Last updated | January 5, 2026 |
| Repository | pluginagentmarketplace/custom-plugin-java ↗ |
How do you configure Maven pom.xml for Spring Boot?
Generate, validate, and maintain correct Maven pom.xml configurations and Java project structures for Spring Boot and other JVM-based services.
Who is it for?
Java backend developers setting up or fixing Maven pom.xml configurations for Spring Boot or JVM microservices.
Skip if: Gradle-based projects, Android-specific builds, or teams that need infrastructure-as-code rather than Maven dependency management.
When should I use this skill?
User asks to create, validate, or fix pom.xml, set up a Java Maven project, or configure Spring Boot dependencies.
What you get
Validated pom.xml files, Java project directory structures, and markdown configuration examples.
- pom.xml files
- Java project structures
- markdown configuration examples
By the numbers
- Skill version 1.0.0 with development and production environment profiles
- Integrates git, linter, and formatter tooling by default
Files
Java Maven Skill
Master Apache Maven for Java project builds and dependency management.
Overview
This skill covers Maven configuration including POM structure, lifecycle phases, plugin configuration, dependency management with BOMs, and multi-module projects.
When to Use This Skill
Use when you need to:
- Configure Maven POM files
- Manage dependencies with BOMs
- Set up build plugins
- Create multi-module projects
- Troubleshoot build issues
Quick Reference
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0.0-SNAPSHOT</version>
<properties>
<java.version>21</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>3.2.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.4.1</version>
</plugin>
</plugins>
</build>
</project>Lifecycle Phases
validate → compile → test → package → verify → install → deployUseful Commands
mvn dependency:tree # View dependencies
mvn dependency:analyze # Find unused/undeclared
mvn versions:display-dependency-updates # Check updates
mvn help:effective-pom # View effective POM
mvn -B verify # Batch mode buildTroubleshooting
| Problem | Solution |
|---|---|
| Dependency not found | Check repository, version |
| Version conflict | Use BOM or enforcer |
| Build OOM | Set MAVEN_OPTS=-Xmx1g |
Usage
Skill("java-maven")# java-maven Configuration
# Category: general
# Generated: 2025-12-30
skill:
name: java-maven
version: "1.0.0"
category: general
settings:
# Default settings for java-maven
enabled: true
log_level: info
# Category-specific defaults
validation:
strict_mode: false
auto_fix: false
output:
format: markdown
include_examples: true
# Environment-specific overrides
environments:
development:
log_level: debug
validation:
strict_mode: false
production:
log_level: warn
validation:
strict_mode: true
# Integration settings
integrations:
# Enable/disable integrations
git: true
linter: true
formatter: true
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>myapp</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<properties>
<java.version>21</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.2.0</version>
</dependency>
</dependencies>
</project>
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "java-maven Configuration Schema",
"type": "object",
"properties": {
"skill": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
},
"category": {
"type": "string",
"enum": [
"api",
"testing",
"devops",
"security",
"database",
"frontend",
"algorithms",
"machine-learning",
"cloud",
"containers",
"general"
]
}
},
"required": [
"name",
"version"
]
},
"settings": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"default": true
},
"log_level": {
"type": "string",
"enum": [
"debug",
"info",
"warn",
"error"
]
}
}
}
},
"required": [
"skill"
]
}Java Maven Guide
Overview
This guide provides comprehensive documentation for the java-maven skill in the custom-plugin-java plugin.
Category: General
Quick Start
Prerequisites
- Familiarity with general concepts
- Development environment set up
- Plugin installed and configured
Basic Usage
# Invoke the skill
claude "java-maven - [your task description]"
# Example
claude "java-maven - analyze the current implementation"Core Concepts
Key Principles
1. Consistency - Follow established patterns 2. Clarity - Write readable, maintainable code 3. Quality - Validate before deployment
Best Practices
- Always validate input data
- Handle edge cases explicitly
- Document your decisions
- Write tests for critical paths
Common Tasks
Task 1: Basic Implementation
# Example implementation pattern
def implement_java_maven(input_data):
"""
Implement java-maven functionality.
Args:
input_data: Input to process
Returns:
Processed result
"""
# Validate input
if not input_data:
raise ValueError("Input required")
# Process
result = process(input_data)
# Return
return resultTask 2: Advanced Usage
For advanced scenarios, consider:
- Configuration customization via
assets/config.yaml - Validation using
scripts/validate.py - Integration with other skills
Troubleshooting
Common Issues
| Issue | Cause | Solution |
|---|---|---|
| Skill not found | Not installed | Run plugin sync |
| Validation fails | Invalid config | Check config.yaml |
| Unexpected output | Missing context | Provide more details |
Related Resources
- SKILL.md - Skill specification
- config.yaml - Configuration options
- validate.py - Validation script
---
Last updated: 2025-12-30
Java Maven Patterns
Design Patterns
Pattern 1: Input Validation
Always validate input before processing:
def validate_input(data):
if data is None:
raise ValueError("Data cannot be None")
if not isinstance(data, dict):
raise TypeError("Data must be a dictionary")
return TruePattern 2: Error Handling
Use consistent error handling:
try:
result = risky_operation()
except SpecificError as e:
logger.error(f"Operation failed: {e}")
handle_error(e)
except Exception as e:
logger.exception("Unexpected error")
raisePattern 3: Configuration Loading
Load and validate configuration:
import yaml
def load_config(config_path):
with open(config_path) as f:
config = yaml.safe_load(f)
validate_config(config)
return configAnti-Patterns to Avoid
❌ Don't: Swallow Exceptions
# BAD
try:
do_something()
except:
pass✅ Do: Handle Explicitly
# GOOD
try:
do_something()
except SpecificError as e:
logger.warning(f"Expected error: {e}")
return default_valueCategory-Specific Patterns: General
Recommended Approach
1. Start with the simplest implementation 2. Add complexity only when needed 3. Test each addition 4. Document decisions
Common Integration Points
- Configuration:
assets/config.yaml - Validation:
scripts/validate.py - Documentation:
references/GUIDE.md
---
Pattern library for java-maven skill
#!/usr/bin/env python3
"""
Validation script for java-maven skill.
Category: general
"""
import os
import sys
import yaml
import json
from pathlib import Path
def validate_config(config_path: str) -> dict:
"""
Validate skill configuration file.
Args:
config_path: Path to config.yaml
Returns:
dict: Validation result with 'valid' and 'errors' keys
"""
errors = []
if not os.path.exists(config_path):
return {"valid": False, "errors": ["Config file not found"]}
try:
with open(config_path, 'r') as f:
config = yaml.safe_load(f)
except yaml.YAMLError as e:
return {"valid": False, "errors": [f"YAML parse error: {e}"]}
# Validate required fields
if 'skill' not in config:
errors.append("Missing 'skill' section")
else:
if 'name' not in config['skill']:
errors.append("Missing skill.name")
if 'version' not in config['skill']:
errors.append("Missing skill.version")
# Validate settings
if 'settings' in config:
settings = config['settings']
if 'log_level' in settings:
valid_levels = ['debug', 'info', 'warn', 'error']
if settings['log_level'] not in valid_levels:
errors.append(f"Invalid log_level: {settings['log_level']}")
return {
"valid": len(errors) == 0,
"errors": errors,
"config": config if not errors else None
}
def validate_skill_structure(skill_path: str) -> dict:
"""
Validate skill directory structure.
Args:
skill_path: Path to skill directory
Returns:
dict: Structure validation result
"""
required_dirs = ['assets', 'scripts', 'references']
required_files = ['SKILL.md']
errors = []
# Check required files
for file in required_files:
if not os.path.exists(os.path.join(skill_path, file)):
errors.append(f"Missing required file: {file}")
# Check required directories
for dir in required_dirs:
dir_path = os.path.join(skill_path, dir)
if not os.path.isdir(dir_path):
errors.append(f"Missing required directory: {dir}/")
else:
# Check for real content (not just .gitkeep)
files = [f for f in os.listdir(dir_path) if f != '.gitkeep']
if not files:
errors.append(f"Directory {dir}/ has no real content")
return {
"valid": len(errors) == 0,
"errors": errors,
"skill_name": os.path.basename(skill_path)
}
def main():
"""Main validation entry point."""
skill_path = Path(__file__).parent.parent
print(f"Validating java-maven skill...")
print(f"Path: {skill_path}")
# Validate structure
structure_result = validate_skill_structure(str(skill_path))
print(f"\nStructure validation: {'PASS' if structure_result['valid'] else 'FAIL'}")
if structure_result['errors']:
for error in structure_result['errors']:
print(f" - {error}")
# Validate config
config_path = skill_path / 'assets' / 'config.yaml'
if config_path.exists():
config_result = validate_config(str(config_path))
print(f"\nConfig validation: {'PASS' if config_result['valid'] else 'FAIL'}")
if config_result['errors']:
for error in config_result['errors']:
print(f" - {error}")
else:
print("\nConfig validation: SKIPPED (no config.yaml)")
# Summary
all_valid = structure_result['valid']
print(f"\n==================================================")
print(f"Overall: {'VALID' if all_valid else 'INVALID'}")
return 0 if all_valid else 1
if __name__ == "__main__":
sys.exit(main())
Related skills
How it compares
Choose java-maven over generic Java prompts when you need structured pom.xml validation with environment-specific strictness rather than one-off dependency snippets.
FAQ
Does java-maven support Spring Boot projects?
java-maven generates and validates Maven pom.xml configurations specifically for Spring Boot and other JVM-based services. The skill handles dependency declarations, project structure scaffolding, and validation with configurable strict_mode for production environments.
Can java-maven auto-fix pom.xml errors?
java-maven includes an auto_fix setting that is disabled by default. When enabled alongside validation, the skill can correct common pom.xml issues. Production environments default to strict_mode true with warn-level logging for safer validation.
Is Java Maven safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.