Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Erro ao compilar GraalVM com maven

Ao executar o comando: mvn -Pnative native:compile -DskipTests -X

Está retornando o erro:

[ERROR] Failed to execute goal org.graalvm.buildtools:native-maven-plugin:0.9.28:compile (default-cli) on project api: Execution of C:\app\java\graalvm-ce-21.0.2\bin\native-image.cmd @target\tmp\native-image-10596665161032700435.args returned non-zero result -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.graalvm.buildtools:native-maven-plugin:0.9.28:compile (default-cli) on project api: Execution of C:\app\java\graalvm-ce-21.0.2\bin\native-image.cmd @target\tmp\native-image-10596665161032700435.args returned non-zero result
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:333)
 java --version
openjdk 21.0.2 2024-01-16
OpenJDK Runtime Environment GraalVM CE 21.0.2+13.1 (build 21.0.2+13-jvmci-23.1-b30)
OpenJDK 64-Bit Server VM GraalVM CE 21.0.2+13.1 (build 21.0.2+13-jvmci-23.1-b30, mixed mode, sharing)
3 respostas

Oi Cleyton! Tudo bem?

Você completou o passo a passo do "Preparando o Ambiente"(https://cursos.alura.com.br/course/java-gestao-memoria-crie-aplicacoes-performaticas-robustas/task/160818)? Verifica se todas as opções sinalizadas no print do Visual Studio estão marcadas, pode ser que esteja faltando alguma coisa relacionada à compilação.

Abraços e bons estudos!

Olá, Iasmin, tudo bem?

Eu instalei o Visual Studio Installer na versão 17.11.5 que era a versão disponível atualmente. Durante a instalação, seguindo o manual, não havia a opção “Depurador Just-In-Time”; para ser marcada no grupo “Desenvolvimento para desktop com C++”., as demais opções, ok.

Depois da instalação eu reiniciei o sistema. Eu observei que o comando gu.cmd não está disponível no prompt do cmd, isso é um problema? Fiz a pesquisa de arquivos e não encontrou esse arquivo em meu sistema, para eventualmente adicionar ao %PATH%

Em algum lugar vi que o Lombok é incompatível com o Java 21. Inativei a dependência do Lombok do pom.xml e removi todas as @Getters, @Setters, etc... e substitui pelos métodos a moda antiga. O projeto compila e executa normalmente depois desta alteração, mas a compilação para otimização com a GraalVM ainda não.

Os erros que aparecem são:

Warning: Please re-evaluate whether any experimental option is required, and either remove or unlock it. The build output lists all active experimental options, including where they come from and possible alternatives. If you think an experimental option should be considered as stable, please file an issue.
Exception in thread "main" java.lang.NullPointerException
        at java.base@23/java.util.Objects.requireNonNull(Objects.java:220)
        at java.base@23/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:215)
        at java.base@23/java.nio.file.Path.of(Path.java:148)
        at java.base@23/java.nio.file.Paths.get(Paths.java:69)
        at org.graalvm.nativeimage.driver/com.oracle.svm.driver.WindowsBuildEnvironmentUtil.findVCVarsallWithVSWhere(WindowsBuildEnvironmentUtil.java:114)
        at org.graalvm.nativeimage.driver/com.oracle.svm.driver.WindowsBuildEnvironmentUtil.propagateEnv(WindowsBuildEnvironmentUtil.java:53)
        at org.graalvm.nativeimage.driver/com.oracle.svm.driver.NativeImage.buildImage(NativeImage.java:1689)
        at org.graalvm.nativeimage.driver/com.oracle.svm.driver.NativeImage.completeImageBuild(NativeImage.java:1329)
        at org.graalvm.nativeimage.driver/com.oracle.svm.driver.NativeImage.build(NativeImage.java:1882)
        at org.graalvm.nativeimage.driver/com.oracle.svm.driver.NativeImage.performBuild(NativeImage.java:1847)
        at org.graalvm.nativeimage.driver/com.oracle.svm.driver.NativeImage.main(NativeImage.java:1829)
        at java.base@23/java.lang.invoke.LambdaForm$DMH/sa346b79c.invokeStaticInit(LambdaForm$DMH)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------

e em seguida

[ERROR] Failed to execute goal org.graalvm.buildtools:native-maven-plugin:0.10.3:compile (default-cli) on project api: Execution of C:\app\java\graalvm-ce-23.0.0\bin\native-image.cmd @target\tmp\native-image-6612743109244087230.args returned non-zero result -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.graalvm.buildtools:native-maven-plugin:0.10.3:compile (default-cli) on project api: Execution of C:\app\java\graalvm-ce-23.0.0\bin\native-image.cmd @target\tmp\native-image-6612743109244087230.args returned non-zero result
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:333)
    
    ...
    
Caused by: org.apache.maven.plugin.MojoExecutionException: Execution of C:\app\java\graalvm-ce-23.0.0\bin\native-image.cmd @target\tmp\native-image-6612743109244087230.args returned non-zero result
    at org.graalvm.buildtools.maven.AbstractNativeImageMojo.buildImage (AbstractNativeImageMojo.java:439)
    at org.graalvm.buildtools.maven.NativeCompileNoForkMojo.execute (NativeCompileNoForkMojo.java:104)
   
   ...
   
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
solução!

Encontrei o problema: eu estava usando a OpenJDK Runtime Environment GraalVM CE 23+37.1 que o IntelliJ sugeriu e eu aceitei.

Mudei para a Oracle GraalVM 21.0.4+8.1 e tudo funcionou como esperado.