Compilación de aplicaciones Java
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Puede utilizar una canalización para:
- Compile el proyecto mediante Maven, Gradle o Ant.
- Ejecute pruebas y herramientas de análisis de código.
- Publique la aplicación en la canalización y Azure Artifacts.
- Implemente la aplicación en la App de Azure Service, Azure Functions o Azure Kubernetes Service.
Si está trabajando en un proyecto de Android, consulte Compilación, prueba e implementación de aplicaciones Android.
Requisitos previos
Para ejecutar el ejemplo siguiente, debe tener:
- Una cuenta de GitHub en la que pueda crear un repositorio. cree una de forma gratuita.
- Una organización de Azure DevOps. cree una de forma gratuita.
- Un proyecto de Azure DevOps. Si no tiene uno, cree un proyecto ahora.
- Una cuenta de GitHub en la que pueda crear un repositorio. cree una de forma gratuita.
- Acceso a una colección de Azure DevOps Server.
- La capacidad de ejecutar Azure Pipelines en agentes autohospedados de Azure DevOps.
- Un proyecto de Azure DevOps. Si no tiene uno, cree un proyecto ahora.
Crear un repositorio de GitHub
Bifurque el siguiente repositorio en su cuenta de GitHub:
https://github.com/MicrosoftDocs/pipelines-java
Crear una canalización
Inicie sesión en su organización de Azure DevOps y vaya a su proyecto.
Vaya a Canalizaciones, and then select Nueva canalización o Crear canalización if creating the first pipeline in the project.
Siga los pasos del asistente y seleccione primero 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.
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.
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.
Se crea un archivo
azure-pipelines.yml
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.Cuando haya terminado de editar el mensaje, seleccione
azure-pipelines.yml
, select Guardar y ejecutar.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.
Vaya a su colección y seleccione su proyecto.
Seleccione Canalizaciones, and then select Nueva canalización o Crear canalización if creating the first pipeline in the project.
Ejecute los pasos del asistente y seleccione primero GitHub Enterprise Server como ubicación del código fuente.
Utilice una conexión de servicio GitHub existente o cree una nueva.
Crear una conexión de servicio
- Seleccione Conexión al servidor de GitHub Enterprise.
- Introduzca la URL de su GitHub Enterprise Server.
- 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.
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.
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.
Se crea un archivo
azure-pipelines-yml
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.Cuando haya terminado de editar el mensaje, seleccione
azure-pipelines.yml
, select Guardar y ejecutar.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 en el repositorio una canalización YAML (azure-pipelines.yml
) que funciona y que está lista para que pueda personalizarla. 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
Puede usar Azure Pipelines para compilar aplicaciones de Java sin tener que configurar ninguna infraestructura propia. Puede compilarlas en 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 saber qué versiones de Java están instaladas, consulte Agentes hospedados por Microsoft.
Actualice el siguiente fragmento de código en el archivo azure-pipelines.yml
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 autohospedados con Java instalado. También puede usar agentes autohospedados para ahorrar más tiempo si tiene un repositorio grande o ejecute compilaciones incrementales.
Las compilaciones se ejecutan en un agente autohospedado. Asegúrese de que tiene Java y las herramientas necesarias para construir con el método elegido instalado 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, para especificar el grupo de agentes y un agente con la funcionalidad de Maven, agregue el siguiente fragmento de código al archivo azure-pipelines.yml
.
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.
Maven
Con la compilación de Maven, las siguientes tareas de código se agrega al archivo azure-pipelines.yml
. 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, también puede usar 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
Ajuste el valor mavenPomFile
si el archivo pom.xml
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/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
Con la compilación de Gradle, la siguiente tarea se agrega al archivo azure-pipelines.yml
. Para más información sobre estas opciones, consulte la tarea Gradle.
steps:
- task: Gradle@2
inputs:
workingDirectory: ''
gradleWrapperFile: 'gradlew'
gradleOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: 'default'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/TEST-*.xml'
tasks: 'build'
Contenedor de Gradle
Debe tener un archivo gradlew
en su repositorio. Si no tiene uno, puede generarlo ejecutando gradle wrapper
en el directorio raíz de su 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
Ajuste el valor workingDirectory
si el archivo gradlew
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.
Ant
Con 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'
Script
Para realizar la compilación con una línea de comandos o un script, agregue uno de los fragmentos de código siguientes al archivo azure-pipelines.yml
.
Script en línea
El paso script:
ejecuta un script insertado mediante 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
Puede publicar la salida de compilación en la canalización. Puede empaquetar y publicar la aplicación en un paquete de Maven o en un archivo .war/jar que se va a implementar 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: