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 |
|---|---|
wrapperScriptContenedor 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 Valor predeterminado: gradlew Alias de argumento: gradleWrapperFile
|
optionsOpciones |
(Opcional) Especifique las opciones de línea de comandos que quiera pasar al contenedor de Gradle. |
tasksTareas |
(Obligatorio) Tareas que gradle va a ejecutar. Una lista de nombres de tarea debe estar separada por espacios y se puede tomar 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 |
|---|---|
publishJUnitResultsPublicar 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. |
testResultsFilesArchivos 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 |
testRunTitleTí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 |
|---|---|
codeCoverageToolHerramienta 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 |
classFilesDirectoriesDirectorios 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 |
classFilterFiltros 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 |
failIfCoverageEmptyError 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 |
|---|---|
cwdDirectorio 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. |
javaHomeSelectionEstablecer 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 |
jdkVersionVersió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 |
jdkUserInputPathRuta de acceso de JDK |
(Obligatorio) Establece JAVA_HOME en la ruta de acceso especificada Valor predeterminado: valor predeterminado Alias de argumento: jdkVersionOption |
jdkArchitectureArquitectura de JDK |
(Opcional) Opcionalmente, proporcione la arquitectura (x86, x64) de JDK. Valor predeterminado: x64 Alias de argumento: jdkArchitectureOption |
gradleOptsEstablecer 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 |
|---|---|
sqAnalysisEnabledEjecució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
|
sqGradlePluginVersionChoiceEscá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 |
sqGradlePluginVersionEscá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
|
checkstyleAnalysisEnabledEjecutar 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
|
findbugsAnalysisEnabledEjecució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
|
pmdAnalysisEnabledEjecució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
|
spotBugsAnalysisEnabledEjecució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
|
spotBugsGradlePluginVersionChoiceComplemento 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 |
spotbugsGradlePluginVersionSpotlights 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.
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 wrapperUpload 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, actualicegradle-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.