Maven plugin to execute Micronaut applications.
See the Documentation for more information.
See the Snapshot Documentation for the current development docs.
To see the documentation of a particular version, replace latest or snapshot in the above URLs with the version string.
Snapshots and releases are automatically published to Maven Central using GitHub Actions.
A release is performed with the following steps:
- Publish the draft release. There should be already a draft release created, edit and publish it. The Git Tag should start with
v. For examplev1.0.0. - Monitor the Workflow to check it passed successfully.
- Celebrate!
This repository's root validation and verify commands expect Java 25. The repo includes a
.sdkmanrc, but shared shells may still start on an older JDK until you apply it.
If you use SDKMAN!, run this from the repository root before ./mvnw ... commands:
sdk env
java -versionIf you do not use SDKMAN!, set JAVA_HOME to a Java 25 installation before running the same commands.
Run the wrapper so you inherit the repo's Maven configuration:
./mvnw verifyIf you want to run individual tests, you can execute ./mvnw verify "-Dinvoker.test=dockerfile*". In this case,
dockerfile* will match all test projects under src/it folder with a name that starts with "dockerfile".
If your change touches GitHub Actions workflows, .github/scripts, .mvn/wrapper, mvnw, or mvnw.cmd, run the lightweight Windows preflight before review handoff.
On Windows, execute:
.\.github\scripts\windows-preflight.cmdOn any platform, also verify workflow pinning:
bash .github/scripts/check-workflow-pinning.shIf you do not have a Windows shell locally, open a draft PR or run the Windows Preflight workflow manually to get the same wrapper/bootstrap check on windows-latest without waiting for the full Windows CI job.
To debug the plugin, you first need to publish a snapshot to your Maven local:
./mvnw installYou can skip execution of integration tests by adding -Dinvoker.skip=true to the command line.
Then you need a sample application. The one at examples/java is the most up-to-date, but you can in principle generate
a new one from Micronaut Starter. Then, change its pom.xml to set the following property, using the snapshot version
you published locally. For branch-specific examples and current documentation, refer to the Snapshot Documentation link
above:
<micronaut-maven-plugin.version>X.Y.Z-SNAPSHOT</micronaut-maven-plugin.version>Pointing to whatever snapshot version you published before.
Finally, from the sample application folder, run the Maven goal you are interested into with mvnDebug instead of mvn:
mvnDebug package -Dpackaging=dockerThen in your IDE, attach a remote debugger to port 8000.
./mvnw release:update-versions -DautoVersionSubmodules=true -DdevelopmentVersion=X.Y.Z-SNAPSHOT