Compartir vía


Compilación de aplicaciones Java

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Use Azure Pipelines para automatizar la compilación, la prueba y la implementación de aplicaciones Java. En este artículo se explica cómo configurar una canalización para proyectos de Java mediante herramientas como Maven, Gradle o Ant. También aprenderá a implementar la aplicación en servicios de Azure, como App Service, Functions o Kubernetes.

Use una canalización para:

Si trabaja en proyectos de Android, consulte Compilación, prueba e implementación de aplicaciones android.

Requisitos previos

Producto Requisitos
Azure DevOps - Un proyecto de Azure DevOps .
- Tener la capacidad de ejecutar canalizaciones en agentes hospedados por Microsoft. Puede comprar un trabajo paralelo o solicitar un nivel gratuito.
- Conocimientos básicos de YAML y Azure Pipelines. Para obtener más información, consulte Creación de su primera canalización.
- Permisos:
     - Para crear una canalización: debe estar en el grupo Colaboradores y este debe tener el permiso Crear canalización de compilación establecido en Permitir. Los miembros del grupo Administradores de proyectos pueden administrar canalizaciones.
    - Para crear conexiones de servicio: debe tener el rol Administrador o Creador para las conexiones de servicio.
GitHub (en inglés) - Una cuenta de GitHub .
- Una conexión de servicio de GitHub para autorizar Azure Pipelines.
Celeste Una suscripción de Azure.
Producto Requisitos
Azure DevOps - Un proyecto de Azure DevOps .
- Un agente autohospedado. Para crear uno, consulte Agentes autohospedados.
- Conocimientos básicos de YAML y Azure Pipelines. Para obtener más información, consulte Creación de su primera canalización.
- Permisos:
    - Para crear una canalización: debe estar en el grupo Colaboradores y este debe tener el permiso Crear canalización de compilación establecido en Permitir. Los miembros del grupo Administradores de proyectos pueden administrar canalizaciones.
    - Para crear conexiones de servicio: debe tener el rol Administrador o Creador para las conexiones de servicio.
GitHub (en inglés) - Una cuenta de GitHub .
- Una conexión de servicio de GitHub para autorizar Azure Pipelines.
Celeste Una suscripción de Azure.

Crear un repositorio de GitHub

Haz un fork del siguiente repositorio en tu cuenta de GitHub:

https://github.com/MicrosoftDocs/pipelines-java

Crear una canalización

  1. Inicie sesión en su organización de Azure DevOps y vaya al proyecto.

  2. Vaya a Canalizaciones, y luego seleccione Nueva canalización o Crear canalización si está creando la primera canalización en el proyecto.

  3. Siga los pasos del asistente, empezando por seleccionar GitHub como ubicación del código fuente. Puede que se le redirija a GitHub para iniciar sesión. Si es así, escriba sus credenciales de GitHub.

  4. Seleccione el repositorio. Es posible que se le redirija a GitHub para instalar la aplicación Azure Pipelines. Si es así, seleccione Aprobar e instalar para continuar.

  5. Cuando vea la pestaña Configurar su canalización, seleccione Maven, Gradle o Ant en función de cómo quiera compilar el código.

  6. Se crea un azure-pipelines.yml archivo que contiene la definición de canalización en el repositorio y se abre en el editor de YAML. Puede personalizar la canalización añadiendo más tareas o modificando las existentes. Para obtener más información sobre las tareas de compilación, consulte Compilación del código.

  7. Cuando haya terminado de editar el elemento, seleccione azure-pipelines.yml y Guardar y ejecutar.

  8. Para confirmar el archivo en el archivo azure-pipelines.yml de su repositorio, seleccione Guardar y ejecutar de nuevo.

Seleccione Trabajo para ver la canalización en acción.

  1. Vaya a su colección y seleccione su proyecto.

  2. Seleccione Canalizaciones, y luego seleccione Nueva canalización o Crear canalización si está creando la primera canalización en el proyecto.

  3. Ejecute los pasos del asistente y seleccione primero GitHub Enterprise Server como ubicación del código fuente.

  4. Utilice una conexión de servicio GitHub existente o cree una nueva.

    Crear una conexión de servicio

    1. Seleccione Conexión al servidor de GitHub Enterprise.
    2. Introduzca la URL de su GitHub Enterprise Server.
    3. Introduzca su token de acceso personal a GitHub Enterprise Server. Si no dispone de un token de acceso personal, puede crear uno en su cuenta de GitHub Enterprise Server. Para más información, vea Creación de un token de acceso personal.
  5. Seleccione el repositorio. Es posible que se le redirija a GitHub para instalar la aplicación Azure Pipelines. Si es así, seleccione Aprobar e instalar.

  6. Cuando vea la pestaña Configurar su canalización, seleccione Maven, Gradle o Ant en función de cómo quiera compilar el código.

  7. Se crea un azure-pipelines.yml archivo que contiene la definición de canalización en el repositorio y se abre en el editor de YAML. Puede personalizar la canalización añadiendo más tareas o modificando las existentes. Para obtener más información sobre las tareas de compilación, consulte Compilación del código.

  8. Cuando haya terminado de editar el elemento, seleccione azure-pipelines.yml y Guardar y ejecutar.

  9. Para confirmar el archivo en el archivo azure-pipelines.yml de su repositorio, seleccione Guardar y ejecutar de nuevo.

Puede seleccionar Trabajo para ver la canalización en acción.

Ahora ya tiene una canalización YAML en funcionamiento (azure-pipelines.yml) en el repositorio que está lista para que la personalice. Para realizar cambios en la canalización, selecciónela en la página Canalizaciones y, luego, haga clic en Editar para modificar el archivo azure-pipelines.yml.

Entorno de compilación

Use Azure Pipelines para compilar aplicaciones Java sin configurar la infraestructura. Desarrollar sobre imágenes de Windows, Linux o macOS. Los agentes hospedados por Microsoft en Azure Pipelines tienen JDK modernos y otras herramientas para Java preinstalado. Para comprobar qué versiones de Java están instaladas, consulte Agentes hospedados por Microsoft.

Seleccione la imagen adecuada actualizando el siguiente fragmento de código en el azure-pipelines.yml archivo.

pool:
  vmImage: 'ubuntu-latest' # other options: 'macOS-latest', 'windows-latest'

Consulte Agentes hospedados por Microsoft para obtener una lista completa de imágenes.

Como alternativa a los agentes hospedados por Microsoft, configure agentes autohospedados con Java instalado. Use agentes autohospedados para ahorrar tiempo si tiene un repositorio grande o ejecuta compilaciones incrementales.

Las compilaciones se ejecutan en un agente autohospedado. Asegúrese de que Java y las herramientas necesarias para el método de compilación elegido están instalados en el host del agente.

Puede seleccionar el grupo de agentes y las funcionalidades del agente en las secciones Grupo de agentes y Especificación del agente de la pestaña Opciones del editor de canalizaciones.

Por ejemplo, especifique el grupo de agentes y un agente con la funcionalidad maven agregando el siguiente fragmento de código al azure-pipelines.yml archivo.

pool: 
  name: MyPool
  demands: maven

Compilar el código

Puede compilar la aplicación Java con Maven, Gradle, Ant o un script. Las siguientes secciones muestran cómo añadir un paso de compilación a su canalización para cada método.

Experto

Para una compilación de Maven, agregue las siguientes tareas al azure-pipelines.yml archivo . Sustituya los valores para adaptarlos a su proyecto. Para más información sobre las opciones de tareas, consulte la tarea Maven.

steps:
- task: Maven@4
  inputs:
    mavenPomFile: 'pom.xml'
    mavenOptions: '-Xmx3072m'
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: 'default'
    jdkArchitectureOption: 'x64'
    publishJUnitResults: true
    testResultsFiles: '**/TEST-*.xml'
    goals: 'package'

Para Spring Boot, puede usar también la tarea Maven. Asegúrese de que el valor mavenPomFile refleje la ruta de acceso al archivo pom.xml. Por ejemplo, si usa el repositorio de ejemplo de Spring Boot, la ruta de acceso será complete/pom.xml.

Personalización de la ruta de acceso de compilación

Establezca el mavenPomFile valor si el pom.xml archivo no está en la raíz del repositorio. El valor de ruta de acceso del archivo debe ser relativo a la raíz del repositorio, como IdentityService/pom.xml o $(system.defaultWorkingDirectory)/IdentityService/pom.xml.

Personalización de los objetivos de Maven

Establezca el valor goals en una lista separada por espacios de objetivos de ejecución de Maven, como clean package. Para más información sobre las fases y los objetivos comunes de Java, consulte la documentación de Maven de Apache.

Gradle

Para una compilación de Gradle, agregue la siguiente tarea al azure-pipelines.yml archivo. Para más información sobre estas opciones, consulte la tarea Gradle.

steps:
- task: Gradle@3
  inputs:
    workingDirectory: ''
    gradleWrapperFile: 'gradlew'
    gradleOptions: '-Xmx3072m'
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: 'default'
    jdkArchitectureOption: 'x64'
    publishJUnitResults: true
    testResultsFiles: '**/TEST-*.xml'
    tasks: 'build'

Envoltorio de Gradle

Asegúrese de que el gradlew archivo está en el repositorio. Si no es así, generelo mediante la ejecución gradle wrapper en el directorio raíz del proyecto. Para obtener información sobre cómo crear un contenedor de Gradle, consulte Gradle.

Elección de la versión de Gradle

Se usará la versión de Gradle instalada en la máquina de agente a menos que el archivo gradle/wrapper/gradle-wrapper.properties del repositorio tenga una propiedad distributionUrl que especifique otra versión de Gradle para descargar y usar durante la compilación.

Ajuste de la ruta de acceso de compilación

Establezca el workingDirectory valor si el gradlew archivo no está en la raíz del repositorio. El valor del directorio debe ser relativo a la raíz del repositorio, como IdentityService o $(system.defaultWorkingDirectory)/IdentityService.

Ajuste el valor gradleWrapperFile si el archivo gradlew no está en la raíz del repositorio. El valor de la ruta de acceso del archivo debe ser relativo a la raíz del repositorio, como IdentityService/gradlew o $(system.defaultWorkingDirectory)/IdentityService/gradlew.

Ajuste de las tareas de Gradle

Ajuste el valor tasks de las tareas que debe ejecutar Gradle, como build o check. Para más información sobre las tareas comunes del complemento de Java para Gradle, consulte la documentación de Gradle.

Hormiga

Usando la compilación de Ant, agregue la siguiente tarea a su archivo azure-pipelines.yml. Cambie los valores, como la ruta de acceso al archivo build.xml para que coincida con la configuración del proyecto. Para más información sobre estas opciones, consulte la tarea Ant. Si utiliza el repositorio de ejemplo, debe proporcionar un archivo build.xml en su repositorio.

steps:
- task: Ant@1
  inputs:
    workingDirectory: ''
    buildFile: 'build.xml'
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: 'default'
    jdkArchitectureOption: 'x64'
    publishJUnitResults: false
    testResultsFiles: '**/TEST-*.xml'

Guión

Para compilar con una línea de comandos o un script, agregue uno de estos fragmentos de código al azure-pipelines.yml archivo.

Script en línea

El script: paso ejecuta un script en línea usando Bash en Linux y macOS, y el símbolo del sistema en Windows. Para más información, consulte la tarea Bash o Línea de comandos.

steps:
- script: |
    echo Starting the build
    mvn package
  displayName: 'Build with Maven'

Archivo de script

Esta tarea ejecuta un archivo de script que se encuentra en el repositorio. Para más información, consulte la tarea Script de Shell, Script de Batch o PowerShell.

steps:
- task: ShellScript@2
  inputs:
    scriptPath: 'build.sh'

Pasos siguientes

Publique los resultados de la compilación en su canalización. Empaquetar y publicar la aplicación en un paquete de Maven o en un archivo .war/jar para implementarla en una aplicación web.

Más información sobre cómo crear una canalización de CI/CD para el destino de implementación: