Claude Marketplaces
SkillsMCP serversMarketplacesDigestTools
Submit

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP servers by category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control
Claude Marketplaces

An independent directory of skills, plugins and MCP servers for Claude Code. Not affiliated with Anthropic.

Browse

  • Skills
  • MCP servers
  • Marketplaces
  • Weekly digest
  • Skill index
  • MCP index
  • Marketplace index

Site

  • About
  • Tools
  • Submit
  • Feedback
  • Privacy
  • llms.txt
  • Plugins reference

Maker

  • Snug
  • Agent Caffeine
  • knobs
  • Wax
  • Vectoys
  • mertduzgun.com
Crafted at
Skills/DevOps & CI/CD
github avatar

Java Add Graalvm Native Image Support

github/awesome-copilotOfficial

This does the heavy lifting of adding GraalVM native image support to Java projects, handling the tedious configuration cycle that usually takes hours. It detects your build tool and framework, adds the right plugins and profiles to your pom.xml or build.gradle, then actually runs the build and iterates through the inevitable reflection and resource access errors. Creates the META-INF configuration files you need and knows the framework-specific gotchas for Spring Boot, Quarkus, and Micronaut. Worth using when you want native images but don't want to spend your afternoon debugging cryptic GraalVM build failures and hunting down missing reflection hints.

installs
8.7K
GitHub stars
40.5K
last updated
Aug 21, 2026
View on GitHubSave

Install

$ npx -y skills add github/awesome-copilot --skill java-add-graalvm-native-image-support --agent claude-code

Installs into .claude/skills of the current project.

Files

GraalVM Native Image Support

Single source of truth for adding GraalVM Native Image to a Java project, whatever the framework. Work iteratively: configure, build, read the error, fix, rebuild, until the native build succeeds and the executable runs correctly.

Detail lives in references/; load only what the project needs:

TopicFile
Maven / Gradle native plugin setupreferences/build-tools.md
Reachability metadata and tracing agentreferences/reachability-metadata.md
Common build/runtime errors and fixesreferences/troubleshooting.md
Spring Boot (AOT, -Pnative, nativeCompile, build-image)references/spring-boot.md
Quarkusquarkus-native-and-container skill (hand off); short pointer in references/quarkus.md
Micronautreferences/micronaut.md

Step 1: Analyze the project

  1. Build tool: pom.xml (Maven) or build.gradle / build.gradle.kts (Gradle). Prefer the wrapper (./mvnw, ./gradlew) when present.
  2. Framework, from dependencies/plugins:
    • Spring Boot: spring-boot-starter-parent, spring-boot-maven-plugin, or org.springframework.boot Gradle plugin
    • Quarkus: io.quarkus BOM/plugin or quarkus-* dependencies
    • Micronaut: io.micronaut parent/plugin or micronaut-* dependencies
    • otherwise plain Java
  3. Existing native configuration: native-build-tools plugin, META-INF/native-image/, native profile, application.properties native keys.
  4. Toolchain: run java -version and native-image --version. Local native compilation needs a GraalVM JDK (with native-image) as the JDK used for the build. Container or buildpack builds (Spring Boot buildpacks via bootBuildImage/spring-boot:build-image, Quarkus container builds) compile inside a container and need no local GraalVM, only a container runtime. Check the project's Java level against the installed GraalVM version.

If the framework is Quarkus, stop here and hand off to the quarkus-native-and-container skill. Container builds there need no local GraalVM.

Scope and JVM baseline

  • Adding native support does not authorize a JDK, framework, library, build-tool, or wrapper upgrade. Preserve the existing BOM/parent-managed versions and test conventions; ask before changing versions to solve native compatibility.
  • Run the project's existing JVM build and tests before editing. Record pre-existing failures rather than weakening checks to hide them. Keep the JVM packaging/run path working alongside native support.
  • After any approved dependency or framework change, rerun that JVM baseline before continuing with native builds. Verify the same relevant behavior on both JVM and native paths.
  • Ask before creating or changing CI workflows, adding native CI jobs, or changing runner resources. Suggest commands separately if CI changes were not requested.

Step 2: Get a GraalVM toolchain

  • Oracle GraalVM (free under the GraalVM Free Terms and Conditions) and GraalVM Community Edition builds provide native-image. Use a release matching the project's Java version (for example, GraalVM for JDK 21 or newer; Spring Boot 3.x/4.x need a Java 17+ baseline, see the Spring reference).
  • Install with SDKMAN (sdk list java, then sdk install java <identifier> using an identifier from that list), a vendor download, or a CI action such as graalvm/setup-graalvm. Pick the version from the vendor's current download page rather than hard-coding one.
  • Linux needs a C toolchain and zlib headers (build-essential, zlib1g-dev); macOS needs Xcode command line tools; Windows needs Visual Studio Build Tools. Check the current GraalVM "Native Image prerequisites" page.

Step 3: Add native support

Per framework:

  • Spring Boot: with Maven, spring-boot-starter-parent only manages the native plugins' versions and configuration in its native profile, so declare native-maven-plugin and spring-boot-maven-plugin in <build><plugins> if missing (no versions needed); with Gradle, apply org.graalvm.buildtools.native next to org.springframework.boot; a custom parent needs the plugin added by hand. Do not duplicate configuration the parent already provides. See references/spring-boot.md.
  • Quarkus: hand off to the quarkus-native-and-container skill.
  • Micronaut: built in via the Micronaut build plugins. See references/micronaut.md.
  • Plain Java (or any project without a framework plugin): add the GraalVM Native Build Tools plugin. See references/build-tools.md. Resolve the plugin version at run time from Maven Central (org.graalvm.buildtools:native-maven-plugin) or the Gradle Plugin Portal (org.graalvm.buildtools.native) and pin it in the build file; do not copy a version from memory.

Step 4: Build

SetupCommand
Plain Maven./mvnw -Pnative native:compile
Plain Gradle./gradlew nativeCompile
Spring Boot Maven./mvnw -Pnative native:compile (or spring-boot:build-image for a container)
Spring Boot Gradle./gradlew nativeCompile (or bootBuildImage)
Micronaut Maven./mvnw package -Dpackaging=native-image
Micronaut Gradle./gradlew nativeCompile

Native builds are slow and memory hungry (several GB of RAM). Capture the full output to inspect it.

Step 5: Iterate until the build succeeds

  1. Read the first real error, not the final summary.
  2. Match it against references/troubleshooting.md.
  3. Apply the smallest fix, in this order of preference:
    1. Check whether a compatible library/framework version has built-in native support (see the reachability metadata repository). Propose the upgrade; apply it only with user approval and rerun the JVM baseline. If declined, try metadata or framework hints compatible with the current versions.
    2. Use the framework's own mechanism (Spring RuntimeHints, Quarkus @RegisterForReflection, Micronaut @Introspected).
    3. Collect metadata with the tracing agent (see references/reachability-metadata.md).
    4. Hand-write metadata under src/main/resources/META-INF/native-image/<groupId>/<artifactId>/.
    5. Adjust initialization (--initialize-at-build-time / --initialize-at-run-time) only for specific classes.
  4. Rebuild. Repeat until the build completes with no errors.

Step 6: Verify the executable

A successful build is not enough: many problems only appear at runtime.

  • Run the binary and exercise the main paths (HTTP endpoints, DB access, serialization, resource loading, scheduled jobs).
  • Run the native tests where the framework supports them (native:test, nativeTest, Quarkus @QuarkusIntegrationTest).
  • Compare startup time and memory against the JVM run only if the user asks for it.
  • Report the exact commands run, whether the build and the run succeeded, and any remaining warnings.

Pitfalls

  • Recommend a native build and native test run in CI with an explicit GraalVM version; add or change CI only with user consent.
  • Mockito's default inline mock maker does not work on native image (Mockito 5.0.0 release notes); use the subclass mock maker for native tests.
  • Do not leave --report-unsupported-elements-at-runtime or verbose flags in production builds unless justified.

References

  • GraalVM Native Image documentation
  • Native Build Tools
  • GraalVM reachability metadata repository
  • Spring Boot GraalVM native images
  • Quarkus building a native executable
  • Micronaut GraalVM guide

Upstream sources (read before upgrading GraalVM or native config)

Fetch the page for the target version; prefer it over this skill when they conflict.

  • GraalVM release notes: https://www.graalvm.org/release-notes/
  • Reachability metadata format: https://www.graalvm.org/latest/reference-manual/native-image/metadata/
  • Build configuration options: https://www.graalvm.org/latest/reference-manual/native-image/overview/BuildConfiguration/
  • Metadata repository (check your library versions are covered): https://github.com/oracle/graalvm-reachability-metadata
SKILL.md on GitHub

Sponsors

SnugThe clipboard manager you and your agent can use, safelyAgent CaffeineClose your lid, come back to finished workWaxBlock anything with supervision, without erasing your iPhoneOpen StepsSponsoredFree and open-source skills that make AI coding agents easier to understand, verify, and control.

Details

Repository
github.com/github/awesome-copilot
Categories
DevOps & CI/CD, Git & Pull Requests, AI & Agent Building, Java & JVM

More from github/awesome-copilot

All 318
  • Mcp Create Adaptive Cards8.7K
  • Transloadit Media Processing8.7K
  • Dataverse Python Usecase Builder8.7K
  • Mcp Create Declarative Agent8.7K
  • Create Spring Boot Kotlin Project8.7K
  • Typespec Create Api Plugin8.7K
  • Cosmosdb Datamodeling8.7K
  • Sponsor Finder8.7K
  • Power Platform Mcp Connector Suite8.7K
  • Mcp Copilot Studio Server Generator8.7K
  • Az Cost Optimize8.7K
  • Kotlin Mcp Server Generator8.7K
  • Shuffle Json Data8.7K
  • Declarative Agents8.7K
  • Azure Resource Health Diagnose8.7K
  • Typespec Create Agent8.7K
  • Containerize Aspnet Framework8.7K
  • Centos Linux Triage8.7K
  • Update Avm Modules In Bicep8.6K
  • Entra Agent User8.6K
  • Ruby Mcp Server Generator8.6K
  • Winapp Cli8.4K
  • Model Recommendation8.4K
  • Polyglot Test Agent8.4K

Recommended

More DevOps & CI/CD
1github avatartransloadit-media-processinggithub/awesome-copilotProcess media files (video, audio, images, documents) using Transloadit. Use when asked to encode video to HLS/MP4, generate thumbnails, resize or watermark ima8.7Kinstalls
2google avataragent-platform-tuning-managementgoogle/skillsManages GenAI tuning jobs in Agent Platform. Use this to list, get, or cancel ongoing model tuning jobs. Don't use for fine-tuning models (use `agent-platform-t8.6Kinstalls
3grafana avatardashboardinggrafana/skillsBuild, modify, and ship Grafana dashboards as JSON via the HTTP API — panel types (timeseries / stat / gauge / table / heatmap / logs / traces / node-graph), `g8.6Kinstalls
4alwaysmeticulous avatarmeticulous-testalwaysmeticulous/skillsRun a Meticulous test run after implementing a frontend change, then hand off to the `meticulous-review` skill to classify each visual change as intended or uni8.6Kinstalls
5google avataragent-platform-eval-flywheelgoogle/skillsMeasures and improves the quality of AI models and agents on Google Cloud using the Eval Quality Flywheel methodology. Use when evaluating an agent or model, bu8.5Kinstalls
6github avatarwinapp-cligithub/awesome-copilotWindows App Development CLI (winapp) for building, packaging, signing, debugging, and UI-automating Windows applications. Use when asked to initialize Windows a8.4Kinstalls