Tarea gradle

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2015

Use esta tarea para compilar mediante un script contenedor de Gradle.

Fragmento de código YAML

# Gradle
# Build using a Gradle wrapper script
- task: Gradle@2
  inputs:
    #gradleWrapperFile: 'gradlew' 
    #cwd: # Optional
    #options: # Optional
    #tasks: 'build' # A list of tasks separated by spaces, such as 'build test'
    #publishJUnitResults: true 
    #testResultsFiles: '**/TEST-*.xml' # Required when publishJUnitResults == True
    #testRunTitle: # Optional
    #codeCoverageToolOption: 'None' # Optional. Options: none, cobertura, jaCoCo
    #codeCoverageClassFilesDirectories: 'build/classes/main/' # Required when codeCoverageToolOption == False
    #codeCoverageClassFilter: # Optional. Comma-separated list of filters to include or exclude classes from collecting code coverage. For example: +:com.*,+:org.*,-:my.app*.*
    #codeCoverageFailIfEmpty: false # Optional
    #javaHomeOption: 'JDKVersion' # Options: jDKVersion, path
    #jdkVersionOption: 'default' # Optional. Options: default, 1.11, 1.10, 1.9, 1.8, 1.7, 1.6
    #jdkDirectory: # Required when javaHomeOption == Path
    #jdkArchitectureOption: 'x64' # Optional. Options: x86, x64
    #gradleOptions: '-Xmx1024m' # Optional
    #sonarQubeRunAnalysis: false 
    #sqGradlePluginVersionChoice: 'specify' # Required when sonarQubeRunAnalysis == True# Options: specify, build
    #sonarQubeGradlePluginVersion: '2.6.1' # Required when sonarQubeRunAnalysis == True && SqGradlePluginVersionChoice == Specify
    #checkStyleRunAnalysis: false # Optional
    #findBugsRunAnalysis: false # Optional
    #pmdRunAnalysis: false # Optional

Argumentos

Argumento Descripción
wrapperScript
Contenedor de Gradle

(Obligatorio) Ubicación en el repositorio del contenedor de Gradlew usado para la compilación. Para los agentes Windows (incluidos los agentes hospedados por Microsoft), debe usar el gradlew.bat contenedor. Los agentes en Linux o macOS pueden usar el gradlew script de shell.

Vea El contenedor de Gradle.


Valor predeterminado: gradlew
Alias de argumento: gradleWrapperFile
options
Opciones

(Opcional) Especifique las opciones de línea de comandos que quiera pasar al contenedor de Gradle.

Vea Línea de comandos de Gradle.

tasks
Tareas

(Obligatorio) Tareas que gradle va a ejecutar. Una lista de nombres de tarea debe estar separada por espacios y se puede tomar gradlew tasks de emitidos desde un símbolo del sistema.

Vea Gradle Build Script Basics (Conceptos básicos del script de compilación de Gradle).


Valor predeterminado: build

Opciones de resultados de pruebas de JUnit

Argumento Descripción
publishJUnitResults
Publicar en Azure Pipelines
(Obligatorio) Seleccione esta opción para publicar los resultados de pruebas de JUnit generados por la compilación de Gradle en Azure Pipelines/TFS.
Valor predeterminado: true.
testResultsFiles
Archivos de resultados de prueba
(Obligatorio) Ruta de acceso de los archivos de resultados de prueba. Se pueden usar caracteres comodín. Por ejemplo, */TEST-.xml para todos los archivos xml cuyo nombre comienza por TEST-."
Valor predeterminado: **/TEST-*.xml
testRunTitle
Título de la ejecución de prueba
(Opcional) Asigne un título para los resultados del caso de prueba de JUnit para esta compilación.

Opciones de cobertura de código

Argumento Descripción
codeCoverageTool
Herramienta de cobertura de código
(Opcional) Elija una herramienta de cobertura de código para determinar el código que cubren los casos de prueba de la compilación.
Valor predeterminado: ninguno
Alias de argumento: codeCoverageToolOption
classFilesDirectories
Directorios de archivos de clase
(Obligatorio) Lista separada por comas de directorios que contienen archivos de clase y archivos de archivo (JAR, WAR, etc.). La cobertura de código se notifica para los archivos de clase de estos directorios. Normalmente, se buscan clases en "build/classes/main", que es el directorio de clases predeterminado para las compilaciones de Gradle.
Valor predeterminado: build/classes/main/
Alias de argumento: codeCoverageClassFilesDirectories
classFilter
Filtros de inclusión y exclusión de clases
(Opcional) Lista separada por comas de filtros para incluir o excluir clases de la recopilación de cobertura de código. Por ejemplo: +:com.*,+:org.*,-:my.app*.*".
Alias de argumento: codeCoverageClassFilter
failIfCoverageEmpty
Error cuando faltan los resultados de cobertura de código
(Opcional) Error en la compilación si la cobertura de código no produjo ningún resultado para publicar
Valor predeterminado: false
Alias de argumento: codeCoverageFailIfEmpty

Opciones avanzadas

Argumento Descripción
cwd
Directorio de trabajo
(Opcional) Directorio de trabajo en el que se va a ejecutar la compilación de Gradle. Si no se especifica, se usa el directorio raíz del repositorio.
javaHomeSelection
Establecer JAVA_HOME por
(Obligatorio) Establece JAVA_HOME seleccionando una versión de JDK que se detectará durante las compilaciones o especificando manualmente una ruta de acceso de JDK.
Valor predeterminado: JDKVersion
Alias de argumento: javaHomeOption
jdkVersion
Versión de JDK
(Opcional) Intentará detectar la ruta de acceso a la versión de JDK seleccionada y establecerá JAVA_HOME en consecuencia.
Alias de argumento: jdkDirectory
jdkUserInputPath
Ruta de acceso de JDK
(Obligatorio) Establece JAVA_HOME en la ruta de acceso especificada
Valor predeterminado: valor predeterminado
Alias de argumento: jdkVersionOption
jdkArchitecture
Arquitectura de JDK
(Opcional) Opcionalmente, proporcione la arquitectura (x86, x64) de JDK.
Valor predeterminado: x64
Alias de argumento: jdkArchitectureOption
gradleOpts
Establecer GRADLE_OPTS
(Opcional) Establece la GRADLE_OPTS de entorno, que se usa para enviar argumentos de línea de comandos para iniciar la JVM. La marca xmx especifica la memoria máxima disponible para jvm.
Valor predeterminado: -Xmx1024m
Alias de argumento: gradleOptions

Opciones de análisis de código

Argumento Descripción
sqAnalysisEnabled
Ejecución del análisis de SonarQube o SonarCloud
(Obligatorio) Esta opción ha cambiado de la versión 1 de la tarea gradle para usar las extensiones de Marketplace SonarQube y SonarCloud. Habilite esta opción para ejecutar el análisis de SonarQube o SonarCloud después de ejecutar tareas en el campo Tareas. También debe agregar una tarea Preparar configuración de análisis desde una de las extensiones a la canalización de compilación antes de esta tarea de Gradle.
Valor predeterminado: false
Alias de argumento: sonarQubeRunAnalysis
sqGradlePluginVersionChoice
Escáner sonarqube para la versión gradle
(Obligatorio) La versión del complemento SonarQube Gradle que se usará. Puede declararlo en el archivo de configuración de Gradle o especificar una versión aquí.
Valor predeterminado: especificar
sqGradlePluginVersion
Escáner de SonarQube para la versión del complemento Gradle
(Obligatorio) Consulte todas las versiones disponibles.
Valor predeterminado: 2.6.1
Alias de argumento: sonarQubeGradlePluginVersion
checkstyleAnalysisEnabled
Ejecutar estilo de comprobación
(Opcional) Ejecute la herramienta Checkstyle con las comprobaciones de Sun predeterminadas. Los resultados se cargan como artefactos de compilación.
Valor predeterminado: false
Alias de argumento: checkStyleRunAnalysis
findbugsAnalysisEnabled
Ejecución de Find Estaciones de trabajo
(Opcional) Use la herramienta de análisis estático Find Qrs para buscar errores en el código. Los resultados se cargan como artefactos de compilación. En Gradle 6.0, se quitó este complemento. En su lugar, use el complemento spot chinches. Más información
Valor predeterminado: false
Alias de argumento: findBugsRunAnalysis
pmdAnalysisEnabled
Ejecución de PMD
(Opcional) Use la herramienta de análisis estático pmd java para buscar errores en el código. Los resultados se cargan como artefactos de compilación
Valor predeterminado: false
Alias de argumento: pmdRunAnalysis
spotBugsAnalysisEnabled
Ejecución de Spot bug
(Obligatorio) Habilite esta opción para ejecutar spot Chinches. Este complemento funciona con Gradle v5.6 o posterior. Los resultados se cargan como artefactos de compilación. Más información Asegúrese de que usa Gradle 5.6 o posterior. Si usa una versión anterior de Gradle, es posible que el complemento funcione de forma inesperada o que no funcione en absoluto.
Valor predeterminado: false
Alias de argumento: spotBugsAnalysis
spotBugsGradlePluginVersionChoice
Complemento Spot plugins para la versión gradle
(Obligatorio) La versión del complemento Gradle de Spot plugins que se usará. Puede declararlo en el archivo de configuración de Gradle o especificar una versión aquí.
Valor predeterminado: especifique
spotbugsGradlePluginVersion
Spotlights para la versión del complemento Gradle
(Obligatorio) Consulte todas las versiones disponibles.
Valor predeterminado: 4.7.0
Alias de argumento: spotbugsGradlePluginVersion

Opciones de control de tareas

Ejemplo

Compilación de la aplicación java con Gradle

Código Abierto

Esta tarea es de código abierto en GitHub. Los comentarios y las contribuciones son bienvenidos.

Preguntas más frecuentes

Cómo generar un contenedor a partir de mi proyecto de Gradle?

El contenedor de Gradle permite al agente de compilación descargar y configurar el entorno de Gradle exacto que se registra en el repositorio sin tener ninguna configuración de software en el propio agente de compilación que no sea jvm.

  1. Cree el contenedor de Gradle mediante la emisión del siguiente comando desde el directorio raíz del proyecto donde reside build.gradle:

    jamal@fabrikam> gradle wrapper

  2. Upload contenedor de Gradle al repositorio remoto.

    Hay un artefacto binario generado por el contenedor de Gradle ( ubicado en gradle/wrapper/gradle-wrapper.jar ). Este archivo binario es pequeño y no requiere actualización. Si necesita cambiar la ejecución de la configuración de Gradle en el agente de compilación, actualice gradle-wrapper.properties .

    El repositorio debe tener un aspecto parecido al siguiente:

|-- gradle/
    `-- wrapper/
        `-- gradle-wrapper.jar
        `-- gradle-wrapper.properties
|-- src/
|-- .gitignore
|-- build.gradle
|-- gradlew
|-- gradlew.bat

Cómo corregir tiempos de espera al descargar dependencias?

Para corregir errores como al descargar dependencias, los usuarios de Read timed out Gradle 4.3+ pueden cambiar el tiempo de espera agregando a Options-Dhttp.socketTimeout=60000 -Dhttp.connectionTimeout=60000 . Esto aumenta el tiempo de espera de 10 segundos a 1 minuto.

¿Necesito un agente?

Necesita al menos un agente para ejecutar la compilación o versión.

Tengo problemas. ¿Cómo puedo solucionarlos?

Vea Solución de problemas de compilación y versión.

No se puede seleccionar un grupo de agentes predeterminado y no se puede poner en cola la compilación o versión. ¿Cómo puedo corregirlo?

Vea Grupos de agentes.

La tarea de envío de cambios de NuGet genera el error siguiente: "Error: no se puede obtener el certificado del emisor local". ¿Cómo lo puedo corregir?

Esto se puede corregir si se añade un certificado raíz de confianza. Puede agregar la variable de entorno NODE_EXTRA_CA_CERTS=file al agente de compilación, o bien la variable de tarea NODE.EXTRA.CA.CERTS=file en la canalización. Vea la documentación de Node.js para obtener más detalles sobre esta variable. Consulte Establecimiento de variables en una canalización para obtener instrucciones sobre cómo establecer una variable en la canalización.

Utilizo TFS en el entorno local y no veo algunas de estas características. ¿Por qué no?

Algunas de estas características solo están disponibles en Azure Pipelines y todavía no lo están en el entorno local. Algunas características están disponibles en el entorno local si ha actualizado a la versión más reciente de TFS.