Gradle@3: tarea de Gradle v3

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

Sintaxis

# Gradle v3
# Build using a Gradle wrapper script.
- task: Gradle@3
  inputs:
    gradleWrapperFile: 'gradlew' # string. Alias: wrapperScript. Required. Gradle wrapper. Default: gradlew.
    #workingDirectory: # string. Alias: cwd. Working directory. 
    #options: # string. Options. 
    tasks: 'build' # string. Required. Tasks. Default: build.
  # JUnit Test Results
    #publishJUnitResults: true # boolean. Publish to Azure Pipelines. Default: true.
    testResultsFiles: '**/TEST-*.xml' # string. Required when publishJUnitResults = true. Test results files. Default: **/TEST-*.xml.
    #testRunTitle: # string. Optional. Use when publishJUnitResults = true. Test run title. 
  # Code Coverage
    #codeCoverageToolOption: 'None' # 'None' | 'Cobertura' | 'JaCoCo'. Alias: codeCoverageTool. Code coverage tool. Default: None.
    codeCoverageClassFilesDirectories: 'build/classes/main/' # string. Alias: classFilesDirectories. Required when codeCoverageTool != None. Class files directories. Default: build/classes/main/.
    #codeCoverageClassFilter: # string. Alias: classFilter. Optional. Use when codeCoverageTool != None. Class inclusion/exclusion filters. 
    #codeCoverageFailIfEmpty: false # boolean. Alias: failIfCoverageEmpty. Optional. Use when codeCoverageTool != None. Fail when code coverage results are missing. Default: false.
    #codeCoverageGradle5xOrHigher: true # boolean. Alias: gradle5xOrHigher. Optional. Use when codeCoverageTool = JaCoCo. Gradle version >= 5.x. Default: true.
  # Advanced
    javaHomeOption: 'JDKVersion' # 'JDKVersion' | 'Path'. Alias: javaHomeSelection. Required. Set JAVA_HOME by. Default: JDKVersion.
    #jdkVersionOption: 'default' # 'default' | '1.11' | '1.10' | '1.9' | '1.8' | '1.7' | '1.6'. Alias: jdkVersion. Optional. Use when javaHomeSelection = JDKVersion. JDK version. Default: default.
    #jdkDirectory: # string. Alias: jdkUserInputPath. Required when javaHomeSelection = Path. JDK path. 
    #jdkArchitectureOption: 'x64' # 'x86' | 'x64'. Alias: jdkArchitecture. Optional. Use when jdkVersion != default. JDK architecture. Default: x64.
    #gradleOptions: '-Xmx1024m' # string. Alias: gradleOpts. Set GRADLE_OPTS. Default: -Xmx1024m.
  # Code Analysis
    #sonarQubeRunAnalysis: false # boolean. Alias: sqAnalysisEnabled. Run SonarQube or SonarCloud Analysis. Default: false.
    #sqGradlePluginVersionChoice: 'specify' # 'specify' | 'build'. Required when sqAnalysisEnabled = true. SonarQube scanner for Gradle version. Default: specify.
    #sonarQubeGradlePluginVersion: '2.6.1' # string. Alias: sqGradlePluginVersion. Required when sqAnalysisEnabled = true && sqGradlePluginVersionChoice = specify. SonarQube scanner for Gradle plugin version. Default: 2.6.1.
    #checkStyleRunAnalysis: false # boolean. Alias: checkstyleAnalysisEnabled. Run Checkstyle. Default: false.
    #findBugsRunAnalysis: false # boolean. Alias: findbugsAnalysisEnabled. Run FindBugs. Default: false.
    #pmdRunAnalysis: false # boolean. Alias: pmdAnalysisEnabled. Run PMD. Default: false.
    #spotBugsAnalysis: false # boolean. Alias: spotBugsAnalysisEnabled. Run SpotBugs. Default: false.
    #spotBugsGradlePluginVersionChoice: 'specify' # 'specify' | 'build'. Required when spotBugsAnalysisEnabled = true. Spotbugs plugin version. Default: specify.
    #spotbugsGradlePluginVersion: '4.7.0' # string. Required when spotBugsAnalysisEnabled = true && spotBugsGradlePluginVersionChoice = specify. Version number. Default: 4.7.0.

Entradas

gradleWrapperFile - Contenedor de Gradle
Alias de entrada: wrapperScript. string. Obligatorio. Valor predeterminado: gradlew.

Especifica la gradlew ubicación del contenedor dentro del repositorio que se usará para la compilación. Los agentes de Windows (incluidos los agentes hospedados por Microsoft) deben usar el gradlew.bat contenedor. Los agentes en Linux o macOS pueden usar el script de gradlew shell. Obtenga más información sobre el contenedor de Gradle.


workingDirectory - Directorio de trabajo
Alias de entrada: cwd. string.

Especifica el directorio de trabajo para ejecutar la compilación de Gradle. La tarea usa el directorio raíz del repositorio si no se especifica el directorio de trabajo.


options - Opciones
string.

Especifica las opciones de la línea de comandos que se pasarán al contenedor de Gradle. Consulte Línea de comandos de Gradle para obtener más información.


tasks - Tareas
string. Obligatorio. Valor predeterminado: build.

Tareas que gradle se van a ejecutar. Una lista de nombres de tareas debe estar separada por espacios y se puede tomar de gradlew tasks emitido desde un símbolo del sistema.

Consulte Aspectos básicos del script de compilación de Gradle para obtener más información.


publishJUnitResults - Publicación en Azure Pipelines
boolean. Valor predeterminado: true.

Publica los resultados de prueba de JUnit generados por la compilación de Gradle en Azure Pipelines. La tarea publica cada archivo de resultados de prueba coincidente Test Results Files como una ejecución de prueba en Azure Pipelines.


testResultsFiles - Archivos de resultados de pruebas
string. Obligatorio cuando publishJUnitResults = true. Valor predeterminado: **/TEST-*.xml.

Ruta de acceso del archivo para los resultados de la prueba. Se pueden usar caracteres comodín. Por ejemplo, **/TEST-*.xml para todos los archivos XML cuyo nombre comienza por TEST-.


testRunTitle - Título de la ejecución de pruebas
string. Opcional. Use cuando publishJUnitResults = true.

Proporciona un nombre para los resultados del caso de prueba de JUnit para esta compilación.


codeCoverageToolOption - Herramienta de cobertura de código
Alias de entrada: codeCoverageTool. string. Valores permitidos: None, Cobertura y JaCoCo. Valor predeterminado: None.

Especifica una herramienta de cobertura de código para determinar el código cubierto por los casos de prueba de la compilación.


codeCoverageClassFilesDirectories - Directorios de archivos de clase
Alias de entrada: classFilesDirectories. string. Obligatorio cuando codeCoverageTool != None. Valor predeterminado: build/classes/main/.

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, la tarea busca clases en build/classes/java/main (para Gradle 4+), que es el directorio de clases predeterminado para las compilaciones de Gradle.


codeCoverageClassFilter - Filtros de inclusión y exclusión de clases
Alias de entrada: classFilter. string. Opcional. Use cuando codeCoverageTool != None.

Lista separada por comas de filtros que se van a incluir o excluir clases de recopilación de cobertura de código. Por ejemplo: +:com.*,+:org.*,-:my.app*.*.


codeCoverageFailIfEmpty - Error cuando faltan resultados de cobertura de código
Alias de entrada: failIfCoverageEmpty. boolean. Opcional. Use cuando codeCoverageTool != None. Valor predeterminado: false.

Se produce un error en la compilación si la cobertura de código no ha generado ningún resultado para publicar.


codeCoverageGradle5xOrHigher - Versión de Gradle >= 5.x
Alias de entrada: gradle5xOrHigher. boolean. Opcional. Use cuando codeCoverageTool = JaCoCo. Valor predeterminado: true.

Establézcalo en "true" si la versión de Gradle es >= 5.x.


javaHomeOption - Establecer JAVA_HOME por
Alias de entrada: javaHomeSelection. string. Obligatorio. Valores permitidos: JDKVersion (versión de JDK), Path. Valor predeterminado: JDKVersion.

Establece JAVA_HOME seleccionando una versión de JDK que la tarea detecta durante las compilaciones o escribiendo manualmente una ruta de acceso de JDK.


jdkVersionOption - Versión de JDK
Alias de entrada: jdkVersion. string. Opcional. Use cuando javaHomeSelection = JDKVersion. Valores permitidos: default, 1.11 (JDK 11), 1.10 (JDK 10 (fuera de soporte)), 1.9 (JDK 9 (fuera de soporte)), 1.8 (JDK 8), 1.7 (JDK 7), 1.6 (JDK 6 (fuera de soporte)). Valor predeterminado: default.

Intenta detectar la ruta de acceso a la versión de JDK seleccionada y establecer JAVA_HOME en consecuencia.


jdkDirectory - Ruta de acceso de JDK
Alias de entrada: jdkUserInputPath. string. Obligatorio cuando javaHomeSelection = Path.

Establece JAVA_HOME en la ruta de acceso especificada.


jdkArchitectureOption - Arquitectura de JDK
Alias de entrada: jdkArchitecture. string. Opcional. Use cuando jdkVersion != default. Valores permitidos: x86, x64. Valor predeterminado: x64.

Proporciona la arquitectura JDK (x86 o x64).


gradleOptions - Establecer GRADLE_OPTS
Alias de entrada: gradleOpts. string. Valor predeterminado: -Xmx1024m.

Establece la variable de entorno GRADLE_OPTS, que se usa para enviar argumentos de línea de comandos para iniciar la JVM. La xmx marca especifica la memoria máxima disponible para la JVM.


sonarQubeRunAnalysis - Ejecución del análisis de SonarQube o SonarCloud
Alias de entrada: sqAnalysisEnabled. boolean. Valor predeterminado: false.

Esta opción ha cambiado de la versión 1 de la tarea de 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 de una de las extensiones a la canalización de compilación antes de esta tarea de Gradle.


sqGradlePluginVersionChoice - Escáner SonarQube para la versión de Gradle
string. Obligatorio cuando sqAnalysisEnabled = true. Valores permitidos: specify (Especifique el número de versión), build (use el complemento aplicado en build.gradle). Valor predeterminado: specify.

Especifica la versión del complemento SonarQube Gradle que se va a usar. Declare la versión en el archivo de configuración de Gradle o especifique una versión con esta cadena.


sonarQubeGradlePluginVersion - SonarQube scanner for Gradle plugin version (Escáner sonarQube para la versión del complemento gradle)
Alias de entrada: sqGradlePluginVersion. string. Obligatorio cuando sqAnalysisEnabled = true && sqGradlePluginVersionChoice = specify. Valor predeterminado: 2.6.1.

Contiene el número de versión del complemento SonarQube Gradle.


checkStyleRunAnalysis - Ejecutar Checkstyle
Alias de entrada: checkstyleAnalysisEnabled. boolean. Valor predeterminado: false.

Ejecuta la herramienta Checkstyle con las comprobaciones predeterminadas de Sun. Los resultados se cargan como artefactos de compilación.


findBugsRunAnalysis - Ejecución de FindBugs
Alias de entrada: findbugsAnalysisEnabled. boolean. Valor predeterminado: false.

Usa la herramienta de análisis estático FindBugs para buscar errores en el código. Los resultados se cargan como artefactos de compilación. En Gradle 6.0, este complemento se quitó. En su lugar, use el complemento SpotBugs.


pmdRunAnalysis - Ejecución de PMD
Alias de entrada: pmdAnalysisEnabled. boolean. Valor predeterminado: false.

Usa la herramienta de análisis estático de Java de PMD para buscar errores en el código. Los resultados se cargan como artefactos de compilación.


spotBugsAnalysis - Ejecución de spotBugs
Alias de entrada: spotBugsAnalysisEnabled. boolean. Valor predeterminado: false.

Se ejecuta spotBugs cuando true. Este complemento funciona con Gradle v5.6 o posterior. Obtenga más información sobre el uso del complemento De Gradle SpotBugs. Es posible que el complemento funcione de forma inesperada o que no funcione en absoluto con una versión anterior de Gradle.


spotBugsGradlePluginVersionChoice - Versión del complemento Spotbugs
string. Obligatorio cuando spotBugsAnalysisEnabled = true. Valores permitidos: specify (Especifique el número de versión), build (use el complemento aplicado en build.gradle). Valor predeterminado: specify.

Especifica la versión del complemento Gradle SpotBugs que se va a usar. La versión se puede declarar en el archivo de configuración de Gradle o la versión se puede especificar en esta cadena.


spotbugsGradlePluginVersion - Número de versión
string. Obligatorio cuando spotBugsAnalysisEnabled = true && spotBugsGradlePluginVersionChoice = specify. Valor predeterminado: 4.7.0.

Contiene el número de versión del complemento De Gradle SpotBugs.


Opciones de control de tareas

Todas las tareas tienen opciones de control además de sus entradas de tareas. Para obtener más información, vea Opciones de control y propiedades de tareas comunes.

Variables de salida

Ninguno.

Comentarios

La configuración del análisis de SonarQube se movió a las extensiones SonarQube o SonarCloud en la tarea Prepare Analysis Configuration.

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

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

El contenedor de Gradle permite que el agente de compilación descargue y configure el entorno exacto de Gradle que está protegido en el repositorio sin tener ninguna configuración de software en el propio agente de compilación que no sea la JVM.

  1. Cree el contenedor de Gradle emitiendo el siguiente comando desde el directorio del proyecto raíz donde reside build.gradle:

    jamal@fabrikam> gradle wrapper

  2. Cargue el contenedor de Gradle en el 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 configuración de Gradle que se ejecuta en el agente de compilación, actualice .gradle-wrapper.properties

    El repositorio debe tener un aspecto similar 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 las dependencias?

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

Ejemplos

Compilación de la aplicación java con Gradle

Requisitos

Requisito Descripción
Tipos de canalización YAML, compilación clásica
Se ejecuta en Agente, DeploymentGroup
Peticiones None
Capabilities Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
Restricciones de comandos Any
Variables que se pueden establecer Any
Versión del agente 1.91.0 o superior
Categoría de la tarea: Build