ccmvn

Run Maven builds using the ccmvn tool, which provides Maven proxy support for sandboxed environments. Use this skill when you need to run Maven commands like clean install, package, test, or compile.

16 stars

Best use case

ccmvn is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Run Maven builds using the ccmvn tool, which provides Maven proxy support for sandboxed environments. Use this skill when you need to run Maven commands like clean install, package, test, or compile.

Teams using ccmvn should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/ccmvn/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/tools/ccmvn/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/ccmvn/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How ccmvn Compares

Feature / AgentccmvnStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Run Maven builds using the ccmvn tool, which provides Maven proxy support for sandboxed environments. Use this skill when you need to run Maven commands like clean install, package, test, or compile.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Maven Build with ccmvn

The `ccmvn` tool enables Maven to run in restricted sandbox environments where outbound HTTPS is blocked or DNS resolution is unavailable. It works by creating a local HTTP proxy that Maven uses to access Maven Central.

## When to Use This Skill

- Running Maven builds (`clean install`, `package`, `test`, `compile`, etc.)
- Building Java projects that depend on Maven Central
- Working in sandboxed environments with network restrictions
- Needing to execute Maven with custom parameters and options

## Prerequisites

Before using this skill, ensure:

1. **Maven is installed**: The system must have Maven 3.x installed
2. **Node.js is available**: Required for the proxy server (typically pre-installed in Claude Code)
3. **Proxy configuration** (for sandboxed Claude Code): The `HTTPS_PROXY` environment variable should be set if in a restricted sandbox

## Basic Usage

### Simple Build

\`\`\`bash
npx ccmvn clean install
\`\`\`

### Other Common Commands

\`\`\`bash
# Package the project
npx ccmvn package

# Run tests
npx ccmvn test

# Compile only
npx ccmvn compile

# Custom parameters
npx ccmvn clean install -DskipTests
npx ccmvn clean install -X  # Debug output
\`\`\`

## How ccmvn Works

ccmvn creates a three-layer proxy chain:

\`\`\`
Maven → Local Proxy → Upstream Sandbox Proxy → Maven Central
       (HTTP)        (HTTP CONNECT)         (HTTP/2 over TLS)
\`\`\`

### Architecture Layers

1. **Maven → Local Proxy** (localhost:8080)
   - Plain HTTP communication
   - Maven configured via \`~/.m2/settings.xml\`
   - No authentication required locally

2. **Local Proxy → Upstream Proxy**
   - HTTP CONNECT tunneling with JWT authentication
   - Upstream proxy performs DNS resolution for sandboxed environments

3. **Local Proxy → Maven Central**
   - HTTP/2 over TLS with ALPN negotiation
   - Secure connection to Maven Central repositories

### Automatic Configuration

ccmvn automatically:
- Creates \`~/.m2/settings.xml\` if it doesn't exist
- Configures Maven to use the local proxy as a mirror for Maven Central
- Starts the proxy server before running Maven
- Cleans up the proxy server after Maven completes

## Common Maven Commands

| Command | Purpose |
|---------|---------|
| \`ccmvn clean\` | Remove build artifacts |
| \`ccmvn compile\` | Compile source code |
| \`ccmvn test\` | Run tests |
| \`ccmvn package\` | Create JAR/WAR file |
| \`ccmvn install\` | Install to local repository |
| \`ccmvn deploy\` | Deploy to remote repository |
| \`ccmvn clean install\` | Full clean build and install |

## Advanced Options

### Skip Tests During Build

\`\`\`bash
npx ccmvn clean install -DskipTests
\`\`\`

### Run with Debug Output

\`\`\`bash
npx ccmvn clean install -X
\`\`\`

### Specify Specific Goals

\`\`\`bash
npx ccmvn clean compile test-compile
\`\`\`

### Use Custom Settings File

Maven will automatically use \`~/.m2/settings.xml\`. To verify or modify proxy settings, check this file after running ccmvn.

## Troubleshooting

### Proxy Connection Issues

If you see proxy-related errors:
1. Ensure \`HTTPS_PROXY\` environment variable is correctly set (if in a sandboxed environment)
2. Check that the proxy server can reach Maven Central
3. Verify your proxy credentials are correct

### Maven Not Found

If Maven is not installed:
\`\`\`bash
# Install Maven (varies by system)
brew install maven  # macOS
apt-get install maven  # Ubuntu/Debian
\`\`\`

### Maven Central Timeout

If builds timeout accessing Maven Central:
1. Check your network connection
2. Try again - temporary network issues can cause timeouts
3. Use \`-X\` flag for debug output to see where it's hanging

### Settings.xml Issues

ccmvn automatically creates \`~/.m2/settings.xml\` if missing. If you have a custom settings file:
1. Backup your current \`~/.m2/settings.xml\`
2. Remove it and let ccmvn create a fresh one
3. Or manually add the proxy mirror configuration

## Examples

### Building a Spring Boot Application

\`\`\`bash
npx ccmvn clean package -DskipTests
\`\`\`

### Running Unit Tests

\`\`\`bash
npx ccmvn clean test
\`\`\`

### Full Build with All Checks

\`\`\`bash
npx ccmvn clean install
\`\`\`

### Building Specific Module (in multi-module project)

\`\`\`bash
npx ccmvn clean install -pl module-name
\`\`\`

## Environment Variables

### HTTPS_PROXY (Sandboxed Environments Only)

Format: \`http://username:jwt_token@host:port\`

This is automatically used by ccmvn for sandboxed Claude Code environments. In local development, this is typically not needed.

## Security

- **Local proxy only**: The proxy server is only accessible on localhost
- **TLS validation**: TLS certificates are validated for Maven Central
- **End-to-end encryption**: Connection through the proxy chain maintains encryption
- **Token protection**: JWT tokens are only used for authentication to the upstream proxy

## Performance Tips

1. **First build**: Initial builds will download dependencies - this takes longer
2. **Incremental builds**: Subsequent builds with cached dependencies are much faster
3. **Skip tests if not needed**: Use \`-DskipTests\` to speed up builds during development
4. **Use clean install sparingly**: Only use \`clean\` when you have problems or need a fresh build

## Resources

- [ccmvn on npm](https://www.npmjs.com/package/ccmvn)
- [ccmvn on GitHub](https://github.com/ctalau/ccmvn)
- [Maven Documentation](https://maven.apache.org/guides/)
- [Maven Central Repository](https://repo.maven.apache.org/maven2/)

Related Skills

bgo

16
from diegosouzapw/awesome-omni-skill

Automated Blender build-go workflow. Automatically builds, removes old version, installs, enables, and launches Blender with your extension/add-on. Use when you want to quickly test changes, execute complete build-to-launch cycle, or run custom packaging scripts with automatic Blender launch.

Coding & Development

codereadr-automation

16
from diegosouzapw/awesome-omni-skill

Automate Codereadr tasks via Rube MCP (Composio). Always search tools first for current schemas.

codeinterpreter-automation

16
from diegosouzapw/awesome-omni-skill

Automate Codeinterpreter tasks via Rube MCP (Composio). Always search tools first for current schemas.

code-generation

16
from diegosouzapw/awesome-omni-skill

Use when generating boilerplate code, __init__.py files, or test scaffolds. Provides scripts that generate consistent, convention-following code.

codacy-automation

16
from diegosouzapw/awesome-omni-skill

Automate Codacy tasks via Rube MCP (Composio). Always search tools first for current schemas.

coassemble-automation

16
from diegosouzapw/awesome-omni-skill

Automate Coassemble tasks via Rube MCP (Composio). Always search tools first for current schemas.

clipper

16
from diegosouzapw/awesome-omni-skill

Analyze video transcriptions to identify interesting segments for clipping. Finds highlights, key moments, and reactions with precise timestamps. Use when working with video transcriptions to extract clip-worthy moments. (project)

clink-standalone

16
from diegosouzapw/awesome-omni-skill

Standalone CLI bridge - launch external AI CLIs (gemini, codex, claude) directly without MCP server. Use when you need to delegate tasks to specialized CLI tools with their own context windows. Supports role-based prompts and file references.

client-management

16
from diegosouzapw/awesome-omni-skill

Manage client relationships using the local CRM — add contacts, track deals through the pipeline, schedule follow-ups, log interactions, and generate reports. All data stored locally in SQLite.

clickmeeting-automation

16
from diegosouzapw/awesome-omni-skill

Automate Clickmeeting tasks via Rube MCP (Composio). Always search tools first for current schemas.

cli

16
from diegosouzapw/awesome-omni-skill

Use this when you need to perform mutations on plyr.fm - uploading, deleting, liking tracks. The MCP server is read-only - use this skill when you need to trigger uploads, delete tracks, or modify likes.

clearout-automation

16
from diegosouzapw/awesome-omni-skill

Automate Clearout tasks via Rube MCP (Composio). Always search tools first for current schemas.