Compilación de aplicaciones Java

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 | TFS 2017

Nota

En esta guía se usan canalizaciones basadas en YAML disponibles en Azure Pipelines. Para TFS, use tareas que se correspondan con las que se usan en el código YAML siguiente.

Use una canalización para compilar y probar automáticamente los proyectos de Java. Obtenga información sobre cómo:

Una vez compilada y probar la aplicación, puede implementar en Azure App Service, Azure Functionso Azure Kubernetes Service. Si está trabajando en un proyecto de Android, consulte Compilación, prueba e implementación de aplicaciones Android.

Cree su primera canalización

¿No está Azure Pipelines? Si es así, se recomienda probar esta sección para crearla antes de pasar a otras secciones.

Obtención del código

Bifurcar este repositorio en GitHub:

Importe este repositorio en el repositorio de Git en Azure DevOps Server 2019:

Importe este repositorio en el repositorio de Git en TFS:

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

Inicio de sesión en Azure Pipelines

Inicie sesión en Azure Pipelines. Una vez que haya iniciado sesión, el explorador accederá a https://dev.azure.com/my-organization-name y aparecerá el panel de Azure DevOps.

En la organización seleccionada, cree un proyecto. Si no tiene ningún proyecto en la organización, aparecerá la pantalla Cree un proyecto para empezar. De lo contrario, seleccione el botón Crear proyecto en la esquina superior derecha del panel.

Creación de la canalización

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

  2. Vaya a Pipelinesy, a continuación, seleccione Nueva canalización.

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

  4. Puede que se le redirija a GitHub para iniciar sesión. Si es así, escriba sus credenciales de GitHub.

  5. Cuando aparezca la lista de repositorios, seleccione el que corresponda.

  6. Es posible que se le redirija a GitHub para instalar la aplicación Azure Pipelines. Si es así, seleccione Aprobar instalación.

Cuando aparezca la pestaña Configurar, seleccione Maven.

  1. Cuando aparezca la nueva canalización, echa un vistazo a YAML para ver lo que hace. Cuando esté listo, seleccione Guardar y ejecute.

    Botón Guardar y ejecutar en una nueva canalización de YAML

  2. Se le pedirá que confirme un nuevo archivo azure-pipelines.yml en el repositorio. Una vez satisfecho con el mensaje, seleccione Guardar y ejecutar de nuevo.

    Si desea ver la canalización en acción, seleccione el trabajo de compilación.

    Acaba de crear y ejecutó una canalización que creamos automáticamente, porque el código parece ser una buena coincidencia para la plantilla de Maven.

    Ahora tiene una canalización YAML en funcionamiento ( ) en el repositorio que azure-pipelines.yml está lista para personalizar.

  3. Cuando esté listo para realizar cambios en la canalización, selecciónelo en la Pipelines y, a continuación, edite el archivo.

  4. Consulte las secciones siguientes para obtener información sobre algunas de las formas más comunes de personalizar la canalización.

  1. Cree una canalización (si no sabe cómo, consulte Creación de la primera canalización) y, para la plantilla, seleccione Maven. Esta plantilla agrega automáticamente las tareas que necesita para compilar el código en el repositorio de ejemplo.

  2. Guarde la canalización y poner en cola una compilación. Cuando aparezca el mensaje Build #nnnnnnnn.n se ha puesto en cola, seleccione el vínculo number para ver la canalización en acción.

    Ahora tiene una canalización de trabajo que está lista para personalizar.

  3. Cuando esté listo para realizar cambios en la canalización, edite la canalización.

  4. Consulte las secciones siguientes para obtener información sobre algunas de las formas más comunes de personalizar la canalización.

Entorno de compilación

Puede usar Azure Pipelines para compilar aplicaciones Java sin necesidad de configurar ninguna infraestructura propia. Puede compilar en imágenes Windows, Linux o macOS. Los agentes hospedados por Microsoft en Azure Pipelines JK modernos y otras herramientas para Java preinstalados. Para saber qué versiones de Java están instaladas, consulte Agentes hospedados por Microsoft.

Actualice el siguiente fragmento de código azure-pipelines.yml en el archivo para seleccionar la imagen adecuada.

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 al uso de agentes hospedados por Microsoft, puede configurar agentes auto-hospedados con Java instalado. También puede usar agentes auto-hospedados para ahorrar más tiempo si tiene un repositorio grande o ejecuta compilaciones incrementales.

Las compilaciones se ejecutan en un agente auto-hospedado. Asegúrese de que tiene Java instalado en el agente.

Compilar el código

Maven

Para compilar con Maven, agregue el siguiente fragmento de código al azure-pipelines.yml archivo. Cambie los valores, como la ruta de acceso al pom.xml archivo, para que coincidan con la configuración del proyecto. Consulte la tarea Maven para obtener más información sobre estas opciones.

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

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

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

Ajuste el mavenPomFile valor si el archivo no está en la raíz del pom.xml 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 de los objetivos en una lista separada por espacios de los objetivos que Maven debe ejecutar, como .

Para más información sobre las fases y los objetivos comunes de Java, consulte la documentación de Maven de Apache.

Gradle

Para compilar con Gradle, agregue el siguiente fragmento de código al azure-pipelines.yml archivo. Consulte la tarea Gradle para obtener más información sobre estas opciones.

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

Elección de la versión de Gradle

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

Ajuste de la ruta de acceso de compilación

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

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

Ajuste de tareas de Gradle

Ajuste el valor de las tareas que Gradle debe ejecutar, como o check .

Para más información sobre las tareas comunes del complemento de Java para Gradle, consulte la documentación de Gradle.

Ant

Para compilar con Ant, agregue el siguiente fragmento de código al azure-pipelines.yml archivo. Cambie los valores, como la ruta de acceso al build.xml archivo, para que coincidan con la configuración del proyecto. Consulte la tarea Ant para obtener más información sobre estas opciones.

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

Script

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

Script en línea

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

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

Archivo de script

Este fragmento de código ejecuta un archivo de script que se encuentra en el repositorio. Para más información, consulte script de shell,script de Batcho tarea de PowerShell.

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

Pasos siguientes

Después de compilar y probar la aplicación, puede cargar la salida de compilación en Azure Pipelines, crear y publicar un paquete de Maven o empaquetar la salida de compilación en un archivo .war/jar para implementarlo en una aplicación web.

A continuación, se recomienda obtener más información sobre cómo crear una canalización de CI/CD para el destino de implementación que elija: