Compila y prueba aplicaciones de Java

En esta página, se explica cómo usar Cloud Build para compilar y probar aplicaciones basadas en Java, almacenar artefactos compilados en un repositorio de Maven en Artifact Registry y generar información de procedencia de las compilaciones.

Antes de comenzar

Usa la imagen maven

Puedes configurar Cloud Build para compilar aplicaciones de Java mediante la imagen maven de Docker Hub.

Para ejecutar tus tareas en la imagen maven, especifica la URL de la imagen y la versión etiquetada de la imagen en el campo name de tu archivo de configuración de compilación. Si no especificas la etiqueta de imagen, Cloud Build usa la imagen latest de forma predeterminada. Cloud Build inicia la imagen especificada en name mediante el punto de entrada predeterminado de la imagen. Para anular el punto de entrada predeterminado y para invocar maven como un punto de entrada, especifica mvn en el campo entrypoint.

En el siguiente archivo de configuración de compilación, se especifica el entrypoint para la imagen maven y se imprime la versión de la herramienta de compilación:

          steps:
          - name: maven:3.3-jdk-8
            entrypoint: mvn
            args: ['--version']

Configura compilaciones de Java

  1. En el directorio raíz del proyecto, crea un archivo de configuración de compilación llamado cloudbuild.yaml.

  2. Ejecuta pruebas: maven proporciona maven test, que descarga dependencias, compila las aplicaciones y ejecuta cualquier prueba especificada en tu código fuente. El campo args de un paso de compilación toma una lista de argumentos y los pasa a la imagen a la que hace referencia el campo name.

    En el archivo de configuración de compilación, agrega test al campo args para invocar test dentro de maven:

         steps:
         - name: maven:3.3-jdk-8
           entrypoint: mvn
           args: ['test']
    
  3. Empaqueta la aplicación: A fin de empaquetar la aplicación en un archivo JAR para la imagen de maven, especifica el comando package en el campo args. El comando package compila un archivo JAR en /workspace/target/.

    En el siguiente paso de compilación, se empaqueta la aplicación de Java:

         steps:
         - name: maven:3.3-jdk-8
           entrypoint: mvn
           args: ['package','-Dmaven.test.skip=true']
    
  4. Sube el archivo a Artifact Registry:

    En el archivo de configuración de compilación, usa el campo mavenArtifacts para especificar la ruta de acceso de tu aplicación y el repositorio de Maven en Artifact Registry:

    artifacts:
      mavenArtifacts:
      - repository: 'https://location-maven.pkg.dev/project-id/repository-name'
        path: 'app-path'
        artifactId: 'build-artifact'
        groupId: 'group-id'
        version: 'version'
    

    Reemplaza los siguientes valores:

    • location: Es la ubicación de tu repositorio en Artifact Registry.
    • project-id: Es el ID del proyecto de Google Cloud que contiene tu repositorio de Artifact Registry.
    • repository-name: Es el nombre de tu repositorio de Maven en Artifact Registry.
    • app-path: Es la ruta de acceso a tu aplicación empaquetada.
    • build-artifact: Es el nombre del archivo de paquete creado a partir de tu paso de compilación.
    • group-id: Identifica tu proyecto de forma única en todos los proyectos de Maven, en el formato com.mycompany.app. Para obtener más información, consulta la guía de Maven sobre las convenciones de nombres.
    • version: Es el número de versión de tu aplicación, con formato de números y puntos, como 1.0.1.
  5. Opcional: Habilita la generación de procedencia

    Cloud Build puede generar metadatos de procedencia de compilación de niveles de cadena de suministro para artefactos de software (SLSA) verificables para ayudar a proteger la canalización de integración continua.

    Para habilitar la generación de procedencia, agrega requestedVerifyOption: VERIFIED a la sección options en tu archivo de configuración.

  6. Inicia tu compilación: de forma manual o con activadores de compilación.

    Una vez que se complete la compilación, podrás ver los detalles del repositorio en Artifact Registry.

    También puedes ver los metadatos de procedencia de la compilación y validar la procedencia.

¿Qué sigue?