Build Maven Native Image
Prérequis
- Configurez
JAVA_HOMEvers une installation de GraalVM JDK pour que le plugin trouvenative-image. - Ne requérez pas
GRAALVM_HOMEdans le cas normal. Mentionnez-le uniquement si l'utilisateur en dépend déjà ou si son environnement nécessite un override explicite. - Utilisez Maven 3.6+.
Configuration du plugin
Ajoutez ce qui suit à votre pom.xml dans un profil native :
<profiles>
<profile>
<id>native</id>
<build>
<plugins>
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
<version>0.11.1</version>
<extensions>true</extensions>
<executions>
<execution>
<id>build-native</id>
<goals>
<goal>compile-no-fork</goal>
</goals>
<phase>package</phase>
</execution>
<execution>
<id>test-native</id>
<goals>
<goal>test</goal>
</goals>
<phase>test</phase>
</execution>
</executions>
<configuration>
<mainClass>org.example.Main</mainClass>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
Build et exécution
./mvnw -Pnative package # Build native image → target/<imageName>
./target/myapp # Exécutez l'exécutable natif
./mvnw -Pnative test # Build et exécutez les tests JUnit en tant qu'image native
./mvnw -Pnative -DskipTests package # Ignorez tous les tests
./mvnw -Pnative -DskipNativeTests package # Exécutez les tests JVM uniquement, ignorez le native
Plugin non résolu ou non activé
- « Could not resolve artifact » — Assurez-vous que
mavenCentral()est dans les repositories et que la version est correcte. - « Could not find goal 'compile-no-fork' » — Vérifiez que
<extensions>true</extensions>est défini sur le plugin. - Le build s'exécute sans compilation native — Vérifiez que vous activez le profil :
./mvnw -Pnative package.
Erreurs de build ou d'exécution
Pour les erreurs d'initialisation de classe, les problèmes de linking, les problèmes de mémoire ou le comportement d'exécution inattendu, consultez references/maven-plugin-options.md.
Métadonnées de reachability manquantes
Quand native-image signale des entrées manquantes pour la réflexion, les ressources, la sérialisation ou JNI, consultez references/reachability-metadata.md.
Native Testing
Pour les échecs nativeTest ou la configuration des tests JUnit natifs, consultez references/testing.md.
Fichiers de référence
| Sujet | Fichier |
|---|---|
| Options de configuration du plugin | references/maven-plugin-options.md |
| Métadonnées de reachability manquantes | references/reachability-metadata.md |
| Native testing | references/testing.md |