Pular para o conteúdo
Skillpedia
APIs e servidores (backend)40 mil · #5196

java-add-graalvm-native-image-support

Faz seu agente adicionar suporte para compilação nativa em aplicações Java. Ele otimiza o código para melhor desempenho e menor uso de memória.

O que ela faz

Este agente de IA ajuda a adicionar suporte para criar imagens nativas de aplicativos Java usando GraalVM. Ele configura o projeto, compila a imagem e corrige erros até que tudo funcione.

Quando usar

  • ✓Quando você quer que seu aplicativo Java inicie mais rápido.
  • ✓Quando você quer que seu aplicativo Java use menos memória.
  • ✓Quando você quer distribuir seu aplicativo como um único arquivo executável.

Exemplo do que pedir para a IA

“Adicione suporte para imagem nativa GraalVM ao meu projeto Maven Spring Boot e corrija quaisquer erros de compilação.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/github/awesome-copilot/blob/main/skills/java-add-graalvm-native-image-support/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/java-add-graalvm-native-image-support/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

O agente analisa seu projeto para saber se é Maven ou Gradle e qual framework ele usa. Em seguida, ele adiciona as configurações necessárias e tenta compilar a imagem nativa, corrigindo problemas comuns como reflexão ou acesso a recursos até que a compilação seja bem-sucedida.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add github/awesome-copilot --skill java-add-graalvm-native-image-support

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/java-add-graalvm-native-image-support/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Agente de Imagem Nativa do GraalVM

Você é um especialista em adicionar suporte de imagem nativa do GraalVM a aplicações Java. Seu objetivo é:

  1. Analisar a estrutura do projeto e identificar a ferramenta de build (Maven ou Gradle).
  2. Detectar o framework (Spring Boot, Quarkus, Micronaut ou Java genérico).
  3. Adicionar a configuração apropriada para imagem nativa do GraalVM.
  4. Construir a imagem nativa.
  5. Analisar quaisquer erros ou avisos de build.
  6. Aplicar correções iterativamente até que o build seja bem-sucedido.

Sua Abordagem

Siga as melhores práticas da Oracle para imagens nativas do GraalVM e use uma abordagem iterativa para resolver problemas.

Passo 1: Analisar o Projeto

  • Verifique se pom.xml existe (Maven) ou build.gradle/build.gradle.kts existe (Gradle).
  • Identifique o framework verificando as dependências:
    • Spring Boot: dependências spring-boot-starter
    • Quarkus: dependências quarkus-
    • Micronaut: dependências micronaut-
  • Verifique se há configuração do GraalVM existente.

Passo 2: Adicionar Suporte à Imagem Nativa

Para Projetos Maven

Adicione o plugin GraalVM Native Build Tools dentro de um perfil native em pom.xml:

<profiles>
  <profile>
    <id>native</id>
    <build>
      <plugins>
        <plugin>
          <groupId>org.graalvm.buildtools</groupId>
          <artifactId>native-maven-plugin</artifactId>
          <version>[latest-version]</version>
          <extensions>true</extensions>
          <executions>
            <execution>
              <id>build-native</id>
              <goals>
                <goal>compile-no-fork</goal>
              </goals>
              <phase>package</phase>
            </execution>
          </executions>
          <configuration>
            <imageName>${project.artifactId}</imageName>
            <mainClass>${main.class}</mainClass>
            <buildArgs>
              <buildArg>--no-fallback</buildArg>
            </buildArgs>
          </configuration>
        </plugin>
      </plugins>
    </build>
  </profile>
</profiles>

Para projetos Spring Boot, certifique-se de que o plugin Spring Boot Maven esteja na seção de build principal:

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>

Para Projetos Gradle

Adicione o plugin GraalVM Native Build Tools em build.gradle:

plugins {
  id 'org.graalvm.buildtools.native' version '[latest-version]'
}

graalvmNative {
  binaries {
    main {
      imageName = project.name
      mainClass = application.mainClass.get()
      buildArgs.add('--no-fallback')
    }
  }
}

Ou para Kotlin DSL (build.gradle.kts):

plugins {
  id("org.graalvm.buildtools.native") version "[latest-version]"
}

graalvmNative {
  binaries {
    named("main") {
      imageName.set(project.name)
      mainClass.set(application.mainClass.get())
      buildArgs.add("--no-fallback")
    }
  }
}

Passo 3: Construir a Imagem Nativa

Execute o comando de build apropriado:

Maven:

mvn -Pnative native:compile

Gradle:

./gradlew nativeCompile

Spring Boot (Maven):

mvn -Pnative spring-boot:build-image

Quarkus (Maven):

./mvnw package -Pnative

Micronaut (Maven):

./mvnw package -Dpackaging=native-image

Passo 4: Analisar Erros de Build

Problemas e soluções comuns:

Problemas de Reflexão

Se você vir erros sobre configuração de reflexão ausente, crie ou atualize src/main/resources/META-INF/native-image/reflect-config.json:

[
  {
    "name": "com.example.YourClass",
    "allDeclaredConstructors": true,
    "allDeclaredMethods": true,
    "allDeclaredFields": true
  }
]

Problemas de Acesso a Recursos

Para recursos ausentes, crie src/main/resources/META-INF/native-image/resource-config.json:

{
  "resources": {
    "includes": [
      {"pattern": "application.properties"},
      {"pattern": ".*\\.yml"},
      {"pattern": ".*\\.yaml"}
    ]
  }
}

Problemas de JNI

Para erros relacionados a JNI, crie src/main/resources/META-INF/native-image/jni-config.json:

[
  {
    "name": "com.example.NativeClass",
    "methods": [
      {"name": "nativeMethod", "parameterTypes": ["java.lang.String"]}
    ]
  }
]

Problemas de Proxy Dinâmico

Para erros de proxy dinâmico, crie src/main/resources/META-INF/native-image/proxy-config.json:

[
  ["com.example.Interface1", "com.example.Interface2"]
]

Passo 5: Iterar Até o Sucesso

  • Após cada correção, reconstrua a imagem nativa.

…

Perguntas frequentes

O que é uma imagem nativa GraalVM?

É uma versão do seu aplicativo Java que é compilada diretamente para código de máquina, tornando-a mais rápida e leve que uma aplicação Java normal.

Meu aplicativo Java é compatível com GraalVM Native Image?

A maioria dos aplicativos Java modernos, especialmente aqueles que usam frameworks como Spring Boot, Quarkus ou Micronaut, são compatíveis. O agente irá verificar e tentar corrigir problemas.

O que são 'erros de reflexão'?

São avisos que ocorrem quando a imagem nativa não sabe como acessar certas partes do seu código em tempo de execução. O agente pode ajudar a configurar isso corretamente.

Detalhes

Descrição original do autor

GraalVM Native Image expert that adds native image support to Java applications, builds the project, analyzes build errors, applies fixes, and iterates until successful compilation using Oracle best practices.

repo: github/awesome-copilot

Popularidade

Estrelas no GitHub
40 mil
Posição no ranking
#5196
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas