Gradle@3 - Gradle v3 작업

이 작업을 사용하여 Gradle 래퍼 스크립트를 사용하여 빌드합니다.

Syntax

# 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.

입력

gradleWrapperFile - Gradle 래퍼
입력 별칭: wrapperScript. string. 필수 요소. 기본값은 gradlew입니다.

빌드에 gradlew 사용할 리포지토리 내에서 래퍼의 위치를 지정합니다. Windows의 에이전트(Microsoft 호스팅 에이전트 포함)는 래퍼를 gradlew.bat 사용해야 합니다. Linux 또는 macOS의 에이전트는 셸 스크립트를 gradlew 사용할 수 있습니다. Gradle 래퍼에 대해 자세히 알아보세요.


workingDirectory - 작업 디렉터리
입력 별칭: cwd. string.

Gradle 빌드를 실행할 작업 디렉터리를 지정합니다. 작업 디렉터리가 지정되지 않은 경우 작업은 리포지토리 루트 디렉터리를 사용합니다.


options - 옵션
string.

Gradle 래퍼에 전달할 명령줄 옵션을 지정합니다. 자세한 내용은 Gradle 명령줄 을 참조하세요.


tasks - 작업
string. 필수 요소. 기본값은 build입니다.

Gradle이 실행할 작업입니다. 작업 이름 목록은 공백으로 구분해야 하며 명령 프롬프트에서 발급된 항목에서 gradlew tasks 제거할 수 있습니다.

자세한 내용은 Gradle 빌드 스크립트 기본 사항을 참조하세요 .


publishJUnitResults - Azure Pipelines에 게시
boolean. 기본값은 true입니다.

Gradle 빌드에서 생성된 JUnit 테스트 결과를 Azure Pipelines에 게시합니다. 작업은 Azure Pipelines에서 테스트 실행으로 일치하는 Test Results Files 각 테스트 결과 파일을 게시합니다.


testResultsFiles - 테스트 결과 파일
string. 필요한 경우 publishJUnitResults = true입니다. 기본값은 **/TEST-*.xml입니다.

테스트 결과의 파일 경로입니다. 와일드카드를 사용할 수 있습니다. 예를 들어 이름이 **/TEST-*.xml 로 시작하는 모든 XML 파일의 경우입니다 TEST-.


testRunTitle - 실행 타이틀 테스트
string. (선택 사항) 를 사용하는 경우 publishJUnitResults = true를 사용합니다.

이 빌드에 대한 JUnit 테스트 사례 결과의 이름을 제공합니다.


codeCoverageToolOption - 코드 검사 도구
입력 별칭: codeCoverageTool. string. 허용되는 값: None, Cobertura, JaCoCo. 기본값은 None입니다.

빌드에 대한 테스트 사례에서 다루는 코드를 결정하는 코드 검사 도구를 지정합니다.


codeCoverageClassFilesDirectories - 클래스 파일 디렉터리
입력 별칭: classFilesDirectories. string. 필요한 경우 codeCoverageTool != None입니다. 기본값은 build/classes/main/입니다.

클래스 파일 및 보관 파일(.jar, .war 등)을 포함하는 쉼표로 구분된 디렉터리 목록입니다. 이러한 디렉터리에 있는 클래스 파일에 대한 코드 검사가 보고됩니다. 일반적으로 태스크는 Gradle 빌드의 기본 클래스 디렉터리인 아래 build/classes/java/main (Gradle 4 이상)에서 클래스를 검색합니다.


codeCoverageClassFilter - 클래스 포함/제외 필터
입력 별칭: classFilter. string. (선택 사항) 를 사용하는 경우 codeCoverageTool != None를 사용합니다.

코드 검사 수집에서 클래스를 포함하거나 제외할 쉼표로 구분된 필터 목록입니다. 예: +:com.*,+:org.*,-:my.app*.*.


codeCoverageFailIfEmpty - 코드 검사 결과가 누락된 경우 실패
입력 별칭: failIfCoverageEmpty. boolean. (선택 사항) 를 사용하는 경우 codeCoverageTool != None를 사용합니다. 기본값은 false입니다.

코드 검사에서 게시할 결과를 생성하지 않으면 빌드에 실패합니다.


codeCoverageGradle5xOrHigher - Gradle 버전 >= 5.x
입력 별칭: gradle5xOrHigher. boolean. (선택 사항) 를 사용하는 경우 codeCoverageTool = JaCoCo를 사용합니다. 기본값은 true입니다.

gradle 버전이 = 5.x이 >면 이를 'true'로 설정합니다.


javaHomeOption - 다음으로 JAVA_HOME 설정
입력 별칭: javaHomeSelection. string. 필수 요소. 허용되는 값: JDKVersion (JDK 버전), Path. 기본값은 JDKVersion입니다.

빌드 중에 태스크가 검색하는 JDK 버전을 선택하거나 JDK 경로를 수동으로 입력하여 JAVA_HOME 설정합니다.


jdkVersionOption - JDK 버전
입력 별칭: jdkVersion. string. (선택 사항) 를 사용하는 경우 javaHomeSelection = JDKVersion를 사용합니다. 허용되는 값: default, 1.11 (JDK 11), 1.10 (JDK 10(지원되지 않음)), 1.9 (JDK 9(지원되지 않음)), 1.8 (JDK 8), 1.7 (JDK 7), 1.6 (JDK 6(지원되지 않음)) 기본값은 default입니다.

선택한 JDK 버전의 경로를 검색하고 그에 따라 JAVA_HOME 설정하려고 시도합니다.


jdkDirectory - JDK 경로
입력 별칭: jdkUserInputPath. string. 필요한 경우 javaHomeSelection = Path입니다.

지정된 경로에 JAVA_HOME 설정합니다.


jdkArchitectureOption - JDK 아키텍처
입력 별칭: jdkArchitecture. string. (선택 사항) 를 사용하는 경우 jdkVersion != default를 사용합니다. 허용되는 값: x86, x64. 기본값은 x64입니다.

JDK 아키텍처(x86 또는 x64)를 제공합니다.


gradleOptions - GRADLE_OPTS 설정
입력 별칭: gradleOpts. string. 기본값은 -Xmx1024m입니다.

JVM을 시작하기 위해 명령줄 인수를 보내는 데 사용되는 GRADLE_OPTS 환경 변수를 설정합니다. 플래그는 xmx JVM에 사용할 수 있는 최대 메모리를 지정합니다.


sonarQubeRunAnalysis - SonarQube 또는 SonarCloud 분석 실행
입력 별칭: sqAnalysisEnabled. boolean. 기본값은 false입니다.

이 옵션은 SonarQubeSonarCloud 마켓플레이스 확장을 사용하도록 Gradle 작업의 버전 1에서 변경되었습니다. 작업 필드에서 작업을 실행한 후 SonarQube 또는 SonarCloud 분석을 실행하려면 이 옵션을 사용하도록 설정합니다. 또한 이 Gradle 작업 전에 확장 중 하나에서 빌드 파이프라인에 분석 구성 준비 작업을 추가해야 합니다.


sqGradlePluginVersionChoice - Gradle 버전용 SonarQube 스캐너
string. 필요한 경우 sqAnalysisEnabled = true입니다. 허용되는 값: specify (버전 번호 지정), build (build.gradle에 적용된 플러그 인 사용). 기본값은 specify입니다.

사용할 SonarQube Gradle 플러그 인 버전을 지정합니다. Gradle 구성 파일에서 버전을 선언하거나 이 문자열을 사용하여 버전을 지정합니다.


sonarQubeGradlePluginVersion - Gradle 플러그 인 버전용 SonarQube 스캐너
입력 별칭: sqGradlePluginVersion. string. 필요한 경우 sqAnalysisEnabled = true && sqGradlePluginVersionChoice = specify입니다. 기본값은 2.6.1입니다.

SonarQube Gradle 플러그 인의 버전 번호를 포함합니다.


checkStyleRunAnalysis - 체크 스타일 실행
입력 별칭: checkstyleAnalysisEnabled. boolean. 기본값은 false입니다.

기본 Sun 검사를 사용하여 Checkstyle 도구를 실행합니다. 결과는 빌드 아티팩트로 업로드됩니다.


findBugsRunAnalysis - FindBugs 실행
입력 별칭: findbugsAnalysisEnabled. boolean. 기본값은 false입니다.

FindBugs 정적 분석 도구를 사용하여 코드에서 버그를 찾습니다. 결과는 빌드 아티팩트로 업로드됩니다. Gradle 6.0에서는 이 플러그 인이 제거되었습니다. 대신 SpotBugs 플러그 인을 사용합니다.


pmdRunAnalysis - PMD 실행
입력 별칭: pmdAnalysisEnabled. boolean. 기본값은 false입니다.

PMD Java 정적 분석 도구를 사용하여 코드에서 버그를 찾습니다. 결과는 빌드 아티팩트로 업로드됩니다.


spotBugsAnalysis - SpotBugs 실행
입력 별칭: spotBugsAnalysisEnabled. boolean. 기본값은 false입니다.

를 실행할 때 true를 실행합니다spotBugs. 이 플러그 인은 Gradle v5.6 이상에서 작동합니다. SpotBugs Gradle 플러그 인 사용에 대해 자세히 알아봅니다. 플러그 인이 예기치 않은 방식으로 작동하거나 이전 Gradle 버전에서 전혀 작동하지 않을 수 있습니다.


spotBugsGradlePluginVersionChoice - 스폿버그 플러그 인 버전
string. 필요한 경우 spotBugsAnalysisEnabled = true입니다. 허용되는 값: specify (버전 번호 지정), build (build.gradle에 적용된 플러그 인 사용). 기본값은 specify입니다.

사용할 SpotBugs Gradle 플러그 인 버전을 지정합니다. Gradle 구성 파일에서 버전을 선언하거나 이 문자열에서 버전을 지정할 수 있습니다.


spotbugsGradlePluginVersion - 버전 번호
string. 필요한 경우 spotBugsAnalysisEnabled = true && spotBugsGradlePluginVersionChoice = specify입니다. 기본값은 4.7.0입니다.

SpotBugs Gradle 플러그 인의 버전 번호를 포함합니다.


작업 제어 옵션

모든 작업에는 작업 입력 외에 제어 옵션이 있습니다. 자세한 내용은 컨트롤 옵션 및 일반적인 작업 속성을 참조하세요.

출력 변수

없음

설명

SonarQube 분석 구성이 작업의 Prepare Analysis ConfigurationSonarQube 또는 SonarCloud 확장으로 이동되었습니다.

이 작업을 사용하여 Gradle 래퍼 스크립트를 사용하여 빌드합니다.

내 Gradle 프로젝트에서 래퍼를 생성할 어떻게 할까요? 있나요?

Gradle 래퍼를 사용하면 빌드 에이전트가 JVM 이외의 빌드 에이전트 자체에 소프트웨어 구성 없이 리포지토리에 체크 인된 정확한 Gradle 환경을 다운로드하고 구성할 수 있습니다.

  1. build.gradle이 있는 루트 프로젝트 디렉터리에서 다음 명령을 실행하여 Gradle 래퍼를 만듭니다.

    jamal@fabrikam> gradle wrapper

  2. 원격 리포지토리에 Gradle 래퍼를 업로드합니다.

    gradle 래퍼(에 있음)에 gradle/wrapper/gradle-wrapper.jar의해 생성되는 이진 아티팩트가 있습니다. 이 이진 파일은 작으며 업데이트할 필요가 없습니다. 빌드 에이전트에서 실행되는 Gradle 구성을 변경해야 하는 경우 를 업데이트합니다 gradle-wrapper.properties.

    리포지토리는 다음과 같이 표시됩니다.

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

종속성을 다운로드할 때 시간 제한을 수정할 어떻게 할까요? 있나요?

종속성을 다운로드할 때와 같은 Read timed out 오류를 해결하기 위해 Gradle 4.3 이상 사용자는 에 를 추가하여 -Dhttp.socketTimeout=60000 -Dhttp.connectionTimeout=60000Options시간 제한을 변경할 수 있습니다. 이렇게 하면 시간 제한이 10초에서 1분으로 증가합니다.

예제

Gradle을 사용하여 Java 앱 빌드

요구 사항

요구 사항 Description
파이프라인 유형 YAML, 클래식 빌드
실행 중 에이전트, DeploymentGroup
요청 없음
Capabilities 이 작업은 작업의 후속 작업에 대한 요구를 충족하지 않습니다.
명령 제한 사항 모두
Settable 변수 모두
에이전트 버전 1.91.0 이상
작업 범주 빌드