build-native-image-maven

Par oracle · graal

Créez des images natives GraalVM à l'aide du native-maven-plugin (org.graalvm.buildtools). Utilisez cette skill pour construire des applications Java avec Maven, configurer les paramètres d'image native dans pom.xml, exécuter des tests natifs, collecter des métadonnées ou résoudre des problèmes de build ou d'exécution.

npx skills add https://github.com/oracle/graal --skill build-native-image-maven

Build Maven Native Image

Prérequis

  • Configurez JAVA_HOME vers une installation de GraalVM JDK pour que le plugin trouve native-image.
  • Ne requérez pas GRAALVM_HOME dans 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

Skills similaires