다음을 통해 공유


Gradle@3 - Gradle v3 작업

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

문법

# 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.17' | '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.
# 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 래퍼대해 자세히 알아봅니다. Gradle 래퍼가 루트 디렉터리에 없는 경우 래퍼 스크립트의 경로를 지정합니다. 예: subdir/gradlew.


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

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


options - 옵션
string;

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


tasks - 작업
string; 필수 사항입니다. 기본값은 build입니다.

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

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


Azure Pipelines게시 publishJUnitResults -
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 설정합니다.


JDK 버전
입력 별칭: jdkVersion. string; 선택 사항입니다. javaHomeSelection = JDKVersion때 사용합니다. 허용되는 값은 default, 1.17(JDK 17), 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 설정하려고 시도합니다.


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 설정하려고 시도합니다.


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

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


JDK 아키텍처
입력 별칭: jdkArchitecture. string; 선택 사항입니다. jdkVersion != default때 사용합니다. 허용되는 값: x86, x64. 기본값은 x64입니다.

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


작업 제어 옵션

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

출력 변수

없음.

비고

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

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

Gradle 프로젝트에서 래퍼를 생성하려면 어떻게 해야 하나요?

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

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

    jamal@fabrikam> gradle wrapper

  2. 원격 리포지토리에 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 앱 빌드

요구 사항

요구 사항 설명
파이프라인 유형 YAML, 클래식 빌드
다음에서 실행 에이전트, DeploymentGroup
요구 없음
기능 이 작업은 작업의 후속 작업에 대한 요구 사항을 충족하지 않습니다.
명령 제한 어느 것이든
settable 변수 어느 것이든
에이전트 버전 1.91.0 이상
작업 범주 빌드