| name | quarkus-module-build |
| description | Use when asked to build, compile, or rebuild specific Quarkus modules. Accepts multiple module names and builds them in parallel via subagents. Examples - build graphql module, compile openapi and rest, rebuild security extensions. |
Quarkus Module Build
Build one or more specific modules in a Quarkus project with parallel execution.
Overview
This skill builds specific Quarkus modules (extensions, libraries, etc.) in parallel using subagents. It's optimized for rapid iteration during development when you only need to rebuild changed modules rather than the entire project.
When to Use
- Building specific modules after local changes
- Compiling a subset of extensions for testing
- Rebuilding modules after dependency updates
- Quick iteration during feature development
- After resolving compilation errors in specific modules
When NOT to use:
- For full project builds (use
quarkus-full-build instead)
- For running tests (use
mvn test directly)
- For single commands (just run
mvn directly)
Quick Reference
Input format: Module names separated by spaces or "and"
/module-build graphql and openapi
/module-build security
build the graphql rest and mongodb modules
Build command per module:
cd <module-path> && mvn clean install -DskipTests
Execution: Parallel via subagents (all modules build simultaneously)
Implementation
Step 1: Parse Module Names
Extract module names from user input (available as $ARGUMENTS):
echo "graphql and openapi rest" | tr ' ' '\n' | grep -v "^and$"
Parsing examples:
graphql and openapi → ["graphql", "openapi"]
graphql openapi rest → ["graphql", "openapi", "rest"]
build security → ["security"]
Step 2: Find Module Directories
For each module name, search the project structure:
find . -maxdepth 5 -type f -name "pom.xml" -path "*/<module-name>/*" | head -5
Selection priority:
extensions/<module-name>/ - Extension modules
<module-name>/ - Top-level modules
integration-tests/<module-name>/ - Integration test modules
devtools/<module-name>/ - Developer tools
Example:
find . -maxdepth 5 -type f -name "pom.xml" -path "*/graphql/*" | head -5
Might return:
./extensions/graphql/deployment/pom.xml
./extensions/graphql/runtime/pom.xml
./integration-tests/graphql/pom.xml
Choose the best match:
- For extension builds:
extensions/graphql/ (parent directory)
- For specific component:
extensions/graphql/runtime/
Step 3: Dispatch Parallel Builds
For each module, dispatch a subagent using the Agent tool. Run all subagents in parallel (multiple Agent calls in one response).
Subagent prompt template:
Build the Quarkus module at: <module-path>
Run the following command:
cd <module-path> && mvn clean install -DskipTests
Monitor the Maven output and report:
1. Whether the build succeeded or failed
2. If failed, include the relevant error output
3. Build time
Module: <module-name>
Example with 3 modules:
Dispatching 3 parallel builds:
Agent 1: Build extensions/graphql/
Agent 2: Build extensions/openapi/
Agent 3: Build extensions/rest/
Step 4: Monitor Build Progress
Each subagent will:
- Navigate to module directory
- Run Maven build
- Monitor for SUCCESS/FAILURE
- Report back with results
You will be notified as each completes - no polling needed.
Step 5: Report Results
After all subagents complete, present a summary:
Format:
Module Build Results (3 modules)
✓ graphql - Built successfully in 2m 15s
✓ openapi - Built successfully in 1m 48s
✗ rest - Build failed
Error in rest module:
[ERROR] /path/to/RestService.java:[23,15] cannot find symbol
symbol: class MissingClass
location: package com.example
The RestService is trying to import a class that doesn't exist.
Next steps: Check if the dependency providing MissingClass is declared in the rest module's pom.xml
Step 6: Suggest Next Steps
After all succeed:
- Suggest running tests for the built modules
- Mention the full build if many modules were changed
After any fail:
- Identify the specific module with issues
- Suggest fixes based on error type
- Offer to rebuild after fixes
Advanced Build Options
Build with dependencies:
mvn install -DskipTests -am -pl :module-name
-am = "also make" dependencies
-pl = "project list" specific module
Build without clean:
mvn install -DskipTests
Faster for incremental changes.
Build with tests:
mvn clean install
Use when you need verification.
Finding Module Paths
Common Quarkus patterns:
| Module Type | Path Pattern |
|---|
| Extension runtime | extensions/<name>/runtime/ |
| Extension deployment | extensions/<name>/deployment/ |
| Extension parent | extensions/<name>/ |
| Integration test | integration-tests/<name>/ |
| Dev tool | devtools/<name>/ |
| Core | core/<name>/ |
Listing all modules:
find . -name "pom.xml" -path "*/extensions/*" | sed 's|/pom.xml||' | sort
Troubleshooting
Module not found:
mvn help:evaluate -Dexpression=project.modules -q -DforceStdout
Build order issues:
Build the parent module to resolve dependencies:
cd extensions/<module-name>
mvn clean install -DskipTests
Stale artifacts:
cd <module-path>
mvn clean
mvn install -DskipTests
Platform Notes
This skill is platform-agnostic:
- Claude Code: Use Agent tool for parallel subagents
- Gemini CLI: Use SubAgent tool
- Codex: Use SubAgent equivalents
The Maven commands are universal across platforms.
Related Skills
- quarkus-full-build - Build entire project
- java-classpath-search - Find dependencies
- java-decompile - Inspect compiled classes