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 빌드를 실행할 작업 디렉터리를 지정합니다. 작업 디렉터리가 지정되지 않은 경우 작업은 리포지토리 루트 디렉터리를 사용합니다.
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
입니다.
이 옵션은 SonarQube 및 SonarCloud 마켓플레이스 확장을 사용하도록 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 Configuration
SonarQube 또는 SonarCloud 확장으로 이동되었습니다.
이 작업을 사용하여 Gradle 래퍼 스크립트를 사용하여 빌드합니다.
내 Gradle 프로젝트에서 래퍼를 생성할 어떻게 할까요? 있나요?
Gradle 래퍼를 사용하면 빌드 에이전트가 JVM 이외의 빌드 에이전트 자체에 소프트웨어 구성 없이 리포지토리에 체크 인된 정확한 Gradle 환경을 다운로드하고 구성할 수 있습니다.
build.gradle이 있는 루트 프로젝트 디렉터리에서 다음 명령을 실행하여 Gradle 래퍼를 만듭니다.
jamal@fabrikam> gradle wrapper
원격 리포지토리에 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=60000
Options
시간 제한을 변경할 수 있습니다. 이렇게 하면 시간 제한이 10초에서 1분으로 증가합니다.
예제
요구 사항
요구 사항 | Description |
---|---|
파이프라인 유형 | YAML, 클래식 빌드 |
실행 중 | 에이전트, DeploymentGroup |
요청 | 없음 |
Capabilities | 이 작업은 작업의 후속 작업에 대한 요구를 충족하지 않습니다. |
명령 제한 사항 | 모두 |
Settable 변수 | 모두 |
에이전트 버전 | 1.91.0 이상 |
작업 범주 | 빌드 |