

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.

# Configure un proyecto de Apache Maven que utilice AWS SDK for Java 2.x
<a name="setup-project-maven"></a>

Puede utilizar [Apache Maven](https://maven.apache.org/) para configurar y compilar proyectos de AWS SDK for Java 2.x o para [compilar el propio SDK](https://github.com/aws/aws-sdk-java-v2/tree/master#building-from-source).

## Requisitos previos
<a name="prerequisitesmaven"></a>

Para usar el SDK para Java 2.x con Maven necesita lo siguiente:
+ Java *8.0 o posterior*. Puede descargar la versión más reciente del software Java SE Development Kit desde [http://www.oracle. com/technetwork/java/javase/downloads](https://www.oracle.com/java/technologies/downloads/)/. El SDK para Java 2.x también funciona con [OpenJDK](https://openjdk.org/) Amazon Corretto y con una distribución del Open Java Development Kit (OpenJDK). Descargue la última versión de OpenJDK desde. [https://openjdk.java.net/install/index.html](https://openjdk.org/install/index.html) Descargue la última versión Amazon Corretto 8 u Amazon Corretto 11 de [la Corretto](https://aws.amazon.com/corretto/) página.
+  *Apache Maven*. Si necesita instalar Maven, vaya a [http://maven.apache.org/](https://maven.apache.org/) para descargarlo e instalarlo.

## Crear un proyecto de Maven
<a name="create-maven-project"></a>

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, sustitúyala por *2.X.X* la [última de Maven Central](https://central.sonatype.com/artifact/software.amazon.awssdk/archetype-lambda).

Este comando crea un proyecto Maven utilizando el conjunto de herramientas de plantillas de arquetipos. El arquetipo genera el andamiaje para un proyecto de gestión 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](https://maven.apache.org/guides/getting-started/).

## Configurar el compilador Java para Maven
<a name="configure-maven-compiler"></a>

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

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
<a name="sdk-as-dependency"></a>

Para usarlo AWS SDK para Java en su proyecto, debe declararlo como una dependencia en el archivo de su proyecto. `pom.xml`

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**  
Sustitúyala *2.X.X* en el `pom.xml` archivo por la [última versión de AWS SDK for Java 2.x](https://central.sonatype.com/artifact/software.amazon.awssdk/bom).

## Establecer dependencias para módulos del SDK
<a name="modules-dependencies"></a>

Ahora que ha configurado el SDK, puede añadir dependencias para uno o más de los AWS SDK para Java módulos para utilizarlos 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](lambda-optimize-starttime.md#lambda-quick-url).

Agregue los módulos a su proyecto para obtener las funciones Servicio de AWS y características que necesite para su proyecto. Los módulos (dependencias) que administra la BOM de AWS SDK para Java se enumeran en el [repositorio central de Maven.](https://central.sonatype.com/artifact/software.amazon.awssdk/bom)

**nota**  
Puede examinar el archivo `pom.xml` de un ejemplo de código para determinar qué dependencias necesita para su proyecto. [Por ejemplo, si le interesan las dependencias del servicio DynamoDB, [consulte este](https://github.com/awsdocs/aws-doc-sdk-examples/blob/da520cb4436f8567a90b6f73f77232fd590a50bf/javav2/example_code/dynamodb/pom.xml) ejemplo del repositorio de ejemplos de AWS código en.](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2) GitHub (Busque el archivo `pom.xml` en [/java2/example\$1code/dynamodb](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/dynamodb).)

### Crear todo el SDK en su proyecto
<a name="build-the-entire-sdk-into-your-project"></a>

Para optimizar su aplicación, le recomendamos encarecidamente que extraiga solo los componentes que necesita en lugar de todo el SDK. Sin embargo, para integrarlo todo AWS SDK para Java en el proyecto, declárelo en el `pom.xml` archivo 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
<a name="build-project"></a>

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`.