Configurar um projeto do Apache Maven - AWS SDK for Java 2.x

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurar um projeto do Apache Maven

O Apache Maven pode ser usado para configurar e criar projetos do AWS SDK for Java ou criar o próprio SDK.

Pré-requisitos

Para usar o AWS SDK for Java com o Maven, você precisa do seguinte:

Criar um projeto Maven

Para criar um projeto Maven com a linha de comando, execute o seguinte comando em um terminal ou janela de prompt de comando .

mvn -B archetype:generate \ -DarchetypeGroupId=software.amazon.awssdk \ -DarchetypeArtifactId=archetype-lambda -Dservice=s3 -Dregion=US_WEST_2 \ -DarchetypeVersion=2.X.X \ -DgroupId=com.example.myapp \ -DartifactId=myapp
nota

Substitua com.example.myapp pelo namespace do pacote completo do aplicativo. Substitua myapp pelo nome do projeto. Esse será o nome do diretório do projeto.

Para usar a versão mais recente do arquétipo, substitua 2.X.X pela versão mais recente do Maven central.

Esse comando cria um projeto do Maven usando o kit de ferramentas de modelo do arquétipo. O arquétipo gera a estrutura básica para um projeto manipulador de funções do AWS Lambda. Esse arquétipo de projeto é pré-configurado para compilar com Java SE 8 e inclui uma dependência para a versão do SDK para Java 2.x especificada por -DarchetypeVersion.

Para obter mais informações sobre como criar e configurar projetos do Maven, consulte o Maven Getting Started Guide.

Configurar o compilador Java para Maven

Se você criou seu projeto usando o arquétipo de projeto do AWS Lambda conforme descrito anteriormente, a configuração do compilador de Java já está feita.

Para verificar se a configuração está presente, primeiro abra o arquivo pom.xml da pasta do projeto que você criou (por exemplo, myapp) ao executar o comando anterior. Veja as linhas 11 e 12 para confirmar a configuração da versão do compilador Java desse projeto Maven, e a inclusão necessária do plugin do compilador Maven nas linhas 71-75.

<project> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven.compiler.plugin.version}</version> </plugin> </plugins> </build> </project>

Se você criar seu projeto com um arquétipo diferente ou por outro método, certifique-se de que o plug-in do compilador Maven faz parte da compilação e que suas propriedades de origem e destino estão definidas como 1.8 no pom.xml arquivo.

Consulte o snippet anterior para ver uma maneira de definir essas configurações necessárias.

Como opção, você pode configurar o compilador em linha com a declaração do plugin, como a seguir.

<project> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> </project>

Declarar o SDK como dependência

Para usar o AWS SDK for Java no seu projeto, você precisa declará-lo como uma dependência no arquivo pom.xml do projeto.

Se você criou seu projeto usando o arquétipo de projeto conforme descrito anteriormente, a versão mais recente do SDK já está configurada como uma dependência no projeto.

O arquétipo gera uma dependência de artefato da BOM (lista de materiais) para o ID do grupo software.amazon.awssdk. Com uma BOM, você não precisa especificar a versão do Maven para dependências de artefatos individuais que compartilham o mesmo ID de grupo.

Se você criou seu projeto do Maven de maneira diferente, configure a versão mais recente do SDK para seu projeto garantindo que o arquivo pom.xml contenha o seguinte.

<project> <properties> <aws.java.sdk.version>2.X.X</aws.java.sdk.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>${aws.java.sdk.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> </project>
nota

Substitua 2.X.X no arquivo pom.xml pela versão mais recente do AWS SDK for Java 2.x.

Definir dependências para módulos do SDK

Agora que você configurou o SDK, pode adicionar dependências para um ou mais módulos do AWS SDK for Java para usar no projeto.

Como você já declarou a versão do SDK na seção dependencyManagement usando o artefato da lista de materiais, não é necessário especificar o número da versão de cada componente. Para carregar uma versão diferente de um módulo, especifique um número de versão para a dependência dele.

Se você criou o projeto usando o arquétipo de projeto conforme descrito anteriormente, ele já está configurado com várias dependências. Isso inclui dependências para manipuladores de funções do AWS Lambda e Amazon S3, conforme a seguir.

<project> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>s3</artifactId> <exclusions> <exclusion> <groupId>software.amazon.awssdk</groupId> <artifactId>netty-nio-client</artifactId> </exclusion> <exclusion> <groupId>software.amazon.awssdk</groupId> <artifactId>apache-client</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>url-connection-client</artifactId> </dependency> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-lambda-java-core</artifactId> <version>${aws.lambda.java.version}</version> </dependency> </dependencies> </project>
nota

No exemplo pom.xml acima, as dependências são de groupIds diferentes. A dependência s3 é de software.amazon.awssdk, enquanto a dependência aws-lambda-java-core é de com.amazonaws. A configuração do gerenciamento de dependências da BOM afeta os artefatos para software.amazon.awssdk, então é necessária uma versão para o artefato aws-lambda-java-core.

Para o desenvolvimento de manipuladores de função do Lambda usando o SDK para Java 2.x, a dependência correta é aws-lambda-java-core. No entanto, se seu aplicativo precisar gerenciar recursos do Lambda usando operações como listFunctions, deleteFunction, invokeFunction e createFunction, seu aplicativo exigirá a dependência a seguir.

<groupId>software.amazon.awssdk</groupId> <artifactId>lambda</artifactId>
nota

A dependência s3 exclui as dependências transitivas netty-nio-client e apache-client. No lugar de qualquer um desses clientes HTTP, o arquétipo inclui a dependência url-connection-client, que ajuda a reduzir a latência de inicialização das funções do AWS Lambda.

Adicione os módulos ao projeto do AWS service (Serviço da AWS) e recursos necessários para ele. Os módulos (dependências) que são gerenciados pela BOM do AWS SDK for Java estão listados no repositório central do Maven.

nota

Para determinar quais dependências você precisa para o projeto, veja o arquivo pom.xml de um exemplo de código. Por exemplo, se você tiver interesse nas dependências do serviço do DynamoDB, consulte este exemplo no Repositório de exemplos de código da AWS no GitHub. (Procure o arquivo pom.xml em /javav2/example_code/dynamodb.)

Desenvolver todo o SDK no projeto

Para otimizar o aplicativo, recomendamos que você extraia apenas os componentes de que precisa, em vez de todo o SDK. No entanto, para criar o AWS SDK for Java inteiro no projeto, declare-o no arquivo pom.xml, da seguinte forma.

<project> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>aws-sdk-java</artifactId> <version>2.X.X</version> </dependency> </dependencies> </project>

Compilar o projeto

Depois de configurar o arquivo pom.xml, você poderá usar o Maven para desenvolver o projeto.

Para criar o projeto Maven pela linha de comando, abra uma janela de terminal ou prompt de comando, navegue até o diretório dele (por exemplo, myapp), insira ou cole o comando abaixo e pressione Enter ou Return.

mvn package

Isso criará um único arquivo (JAR) .jar no diretório target (por exemplo, myapp/target). Esse JAR conterá todos os módulos SDK especificados como dependências no arquivo pom.xml.