Configurar un proyecto Apache Maven - AWS SDK for Java 2.x

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configurar un proyecto Apache Maven

Puede utilizar Apache Maven para configurar y compilar proyectos de AWS SDK for Java o para compilar el propio SDK.

Requisitos previos

Para usar el AWS SDK for Java con Maven, necesita lo siguiente:

Crear un proyecto de Maven

Para crear un proyecto Maven desde la línea de comandos, ejecute el siguiente comando desde un terminal o una ventana del indicador de comandos.

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

Sustituya com.example.myapp por el espacio de nombres del paquete completo de su aplicación. Sustituya también myapp por el nombre de su proyecto. Esto se convierte en el nombre del directorio del proyecto.

Para usar la última versión del arquetipo, sustituya 2.X.X por el último de Maven Central.

Este comando crea un proyecto Maven utilizando el conjunto de herramientas de plantillas de arquetipos. El arquetipo genera el andamiaje para un proyecto de controlador de funciones AWS Lambda. Este arquetipo de proyecto está preconfigurado para compilar con Java SE 8 e incluye una dependencia a la versión del SDK para Java 2.x especificada con -DarchetypeVersion.

Para obtener más información sobre cómo crear y configurar proyectos de Maven, consulte Maven Getting Started Guide.

Configurar el compilador Java para Maven

Si ha creado su proyecto utilizando el arquetipo de proyecto AWS Lambda como se ha descrito anteriormente, la configuración del compilador Java ya está hecha por usted.

Para comprobar que esta configuración está presente, comience abriendo el archivo pom.xml desde la carpeta de proyecto que creó (por ejemplo, myapp) cuando ejecutó el comando anterior. Busque en las líneas 11 y 12 para consultar la configuración de la versión del compilador Java para este proyecto de Maven y la inclusión requerida del complemento del compilador de Maven en las líneas 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>

Si crea su proyecto con un arquetipo diferente o utilizando otro método, debe asegurarse de que el complemento del compilador de Maven sea parte de la compilación y que sus propiedades de origen y destino están establecidas en 1.8 en el archivo pom.xml.

Consulte el fragmento anterior para ver una forma de configurar estos parámetros necesarios.

Otra opción sería definir la configuración del compilador insertada con la declaración del complemento, de la siguiente manera.

<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 el SDK como una dependencia

Para utilizar AWS SDK for Java en el proyecto, tendrá que declararlo como una dependencia en el archivo pom.xml del proyecto.

Si creó su proyecto utilizando el arquetipo de proyecto como se describió anteriormente, la última versión del SDK ya está configurada como una dependencia en su proyecto.

El arquetipo genera un artefacto dependiente de la BOM (lista de materiales) para el identificador del grupo software.amazon.awssdk. Con una lista de materiales, no tiene que especificar la versión de Maven para las dependencias de artefactos individuales que comparten el mismo id de grupo.

Si creó su proyecto de Maven de otra manera, configure la versión más reciente del SDK para su proyecto asegurándose de que el archivo pom.xml contenga lo siguiente.

<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

Sustituya 2.X.X en el archivo pom.xml por la última versión del AWS SDK for Java 2.x.

Establecer dependencias para módulos del SDK

Ahora que ha configurado el SDK, puede agregar dependencias para uno o más de los módulos de AWS SDK for Java que se van a utilizar en su proyecto.

Aunque puede especificar el número de versión para cada componente, no es necesario porque ya declaró la versión del SDK en la sección dependencyManagement usando la lista de materiales. Para cargar una versión personalizada de un módulo determinado, especifique un número de versión para su dependencia.

Si creó su proyecto utilizando el arquetipo de proyecto como se ha descrito anteriormente, su proyecto ya está configurado con múltiples dependencias. Incluyen las dependencias de los controladores de funciones AWS Lambda y Amazon S3, de la siguiente manera.

<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

En el ejemplo pom.xml anterior, las dependencias son de diferentes groupId. La dependencia s3 es de software.amazon.awssdk, mientras que la dependencia aws-lambda-java-core es de com.amazonaws. La configuración de administración de dependencias de la BOM afecta a los artefactos para software.amazon.awssdk, por lo que se necesita una versión para el artefacto aws-lambda-java-core.

Para el desarrollo de controladores de funciones Lambda utilizando el SDK para Java 2.x, aws-lambda-java-core es la dependencia correcta. Sin embargo, si la aplicación necesita administrar los recursos de Lambda, el uso de operaciones como listFunctions, deleteFunction, invokeFunction y createFunction, la aplicación requiere la siguiente dependencia.

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

La dependencia s3 excluye las dependencias transitivas netty-nio-client y apache-client. En lugar de cualquiera de esos clientes HTTP, el arquetipo incluye la dependencia url-connection-client, lo que ayuda a reducir la latencia de inicio de las funciones de AWS Lambda.

Agregue los módulos a su proyecto para el Servicio de AWS y las características que necesita para su proyecto. Los módulos (dependencias) que administra la BOM de AWS SDK for Java se enumeran en el repositorio central de Maven.

nota

Puede examinar el archivo pom.xml de un ejemplo de código para determinar qué dependencias necesita para su proyecto. Por ejemplo, si está interesado en las dependencias del servicio de DynamoDB, consulte este ejemplo del Repositorio de ejemplos de código de AWS en GitHub. (Busque el archivo pom.xml en /java2/example_code/dynamodb.)

Crear todo el SDK en su proyecto

Para optimizar su aplicación, le recomendamos encarecidamente que extraiga solo los componentes que necesita en lugar de todo el SDK. Sin embargo, para crear AWS SDK for Java al completo en su proyecto, declárelo en su archivo pom.xml de la siguiente manera.

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

Compilación del proyecto

Después de configurar el archivo pom.xml, puede usar Maven para crear el proyecto.

Para crear el proyecto de Maven desde la línea de comandos, abra una ventana de terminal o símbolo del sistema, desplácese hasta el directorio del proyecto (por ejemplo, myapp), escriba o pegue el siguiente comando y, a continuación, presione "Enter" o "Return".

mvn package

Esto crea un único archivo .jar (JAR) en el directorio target (por ejemplo, myapp/target). Este JAR contiene todos los módulos del SDK especificados como dependencias en su archivo pom.xml.