Configurar um projeto do GraalVM Native Image que usa o AWS SDK for Java 2.x
Com as versões 2.16.1 e posteriores, o AWS SDK for Java 2.x fornece suporte imediato para as aplicações do GraalVM Native Image. Use o arquétipo archetype-app-quickstart do Maven para configurar um projeto com suporte de imagem nativa integrado.
Pré-requisitos
-
Conclua as etapas em Configuração do AWS SDK para Java 2.x.
-
Instale o GraalVM Native Image
.
Crie um projeto usando o arquétipo
Para criar um projeto do Maven com suporte de imagem nativa integrado, em uma janela de terminal ou prompt de comando, use o comando a seguir.
nota
Substitua com.example.mynativeimageapp pelo namespace do pacote completo do seu aplicativo. Substitua mynativeimageapp pelo nome do projeto. Esse será o nome do diretório do projeto.
mvn archetype:generate \ -DarchetypeGroupId=software.amazon.awssdk \ -DarchetypeArtifactId=archetype-app-quickstart \ -DarchetypeVersion=2.27.21\ -DnativeImage=true \ -DhttpClient=apache-client \ -Dservice=s3 \ -DgroupId=com.example.mynativeimageapp \ -DartifactId=mynativeimageapp \ -DinteractiveMode=false
Esse comando cria um projeto do Maven configurado com dependências para o AWS SDK para Java, o Amazon S3 e o cliente HTTP ApacheHttpClient. Ele também inclui uma dependência para o plug-in GraalVM Native Image do Maven
Para incluir dependências para uma Amazon Web Services diferente, defina o valor do parâmetro -Dservice como o ID do artefato desse serviço. Os exemplos incluem dynamodb, comprehend e pinpoint. Para obter uma lista completa de IDs de artefatos, consulte a lista de dependências gerenciadas para software.amazon.awssdk no Maven Central
Para usar um cliente HTTP assíncrono, defina o parâmetro -DhttpClient como netty-nio-client. Para usar UrlConnectionHttpClient como cliente HTTP síncrono em vez de apache-client, defina o parâmetro -DhttpClient como url-connection-client.
Crie uma imagem nativa
Depois de criar o projeto, execute o comando seguinte no diretório do projeto, por exemplo, mynativeimageapp:
mvn package -P native-image
Isso cria um aplicativo de imagem nativa no diretório target, por exemplo, target/mynativeimageapp.