Gradle@1 - Gradle v1 작업
Gradle 래퍼 스크립트를 사용하여 빌드합니다.
구문론
# Gradle v1
# Build using a Gradle wrapper script.
- task: Gradle@1
inputs:
gradleWrapperFile: 'gradlew' # string. Alias: wrapperScript. Required. Gradle Wrapper. Default: gradlew.
#options: # string. Options.
tasks: 'build' # string. Required. Tasks. Default: build.
# Advanced
#workingDirectory: # string. Alias: cwd. Working Directory.
javaHomeOption: 'JDKVersion' # 'JDKVersion' | 'Path'. Alias: javaHomeSelection. Required. Set JAVA_HOME by. Default: JDKVersion.
#jdkVersionOption: 'default' # 'default' | '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.
# JUnit Test Results
#publishJUnitResults: true # boolean. Publish to TFS/Team Services. Default: true.
testResultsFiles: '**/build/test-results/TEST-*.xml' # string. Required when publishJUnitResults = true. Test Results Files. Default: **/build/test-results/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 = false. 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.
# Code Analysis
#sonarQubeRunAnalysis: false # boolean. Alias: sqAnalysisEnabled. Run SonarQube Analysis. Default: false.
#sonarQubeServiceEndpoint: # string. Alias: sqConnectedServiceName. Required when sqAnalysisEnabled = true. SonarQube Endpoint.
#sonarQubeProjectName: # string. Alias: sqProjectName. Required when sqAnalysisEnabled = true. SonarQube Project Name.
#sonarQubeProjectKey: # string. Alias: sqProjectKey. Required when sqAnalysisEnabled = true. SonarQube Project Key.
#sonarQubeProjectVersion: # string. Alias: sqProjectVersion. Required when sqAnalysisEnabled = true. SonarQube Project Version.
#sonarQubeGradlePluginVersion: '2.0.1' # string. Alias: sqGradlePluginVersion. Required when sqAnalysisEnabled = true. SonarQube Gradle Plugin Version. Default: 2.0.1.
#sonarQubeSpecifyDB: false # boolean. Alias: sqDbDetailsRequired. Optional. Use when sqAnalysisEnabled = true. The SonarQube server version is lower than 5.2. Default: false.
#sonarQubeDBUrl: # string. Alias: sqDbUrl. Optional. Use when sqDbDetailsRequired = true. Db Connection String.
#sonarQubeDBUsername: # string. Alias: sqDbUsername. Optional. Use when sqDbDetailsRequired = true. Db Username.
#sonarQubeDBPassword: # string. Alias: sqDbPassword. Optional. Use when sqDbDetailsRequired = true. Db User Password.
#sonarQubeIncludeFullReport: true # boolean. Alias: sqAnalysisIncludeFullReport. Optional. Use when sqAnalysisEnabled = true. Include full analysis report in the build summary (SQ 5.3+). Default: true.
#sonarQubeFailWhenQualityGateFails: # boolean. Alias: sqAnalysisBreakBuildIfQualityGateFailed. Optional. Use when sqAnalysisEnabled = true. Fail the build on quality gate failure (SQ 5.3+).
#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.
입력
gradleWrapperFile
-
Gradle 래퍼
입력 별칭: wrapperScript
.
string
; 필수 사항입니다. 기본값은 gradlew
입니다.
빌드에 사용할 리포지토리 내의 gradlew
래퍼 위치를 지정합니다. Windows의 에이전트(Microsoft 호스팅 에이전트 포함)는 gradlew.bat
래퍼를 사용해야 합니다. Linux 또는 macOS의 에이전트는 gradlew
셸 스크립트를 사용할 수 있습니다.
Gradle 래퍼대해 자세히 알아봅니다.
tasks
-
작업
string
; 필수 사항입니다. 기본값은 build
입니다.
Gradle이 실행할 작업입니다. 작업 이름 목록은 공백으로 구분해야 하며 명령 프롬프트에서 발급된 gradlew tasks
사용할 수 있습니다.
자세한 내용은 Gradle 빌드 스크립트 기본 사항 참조하세요.
workingDirectory
-
작업 디렉터리
입력 별칭: cwd
.
string
;
Gradle 빌드를 실행할 작업 디렉터리를 지정합니다. 작업 디렉터리가 지정되지 않은 경우 작업은 리포지토리 루트 디렉터리를 사용합니다.
TFS/Team Services게시 publishJUnitResults
-
boolean
; 기본값은 true
입니다.
Gradle 빌드에서 생성된 JUnit 테스트 결과를 Azure Pipelines에 게시합니다. 태스크는 Azure Pipelines에서 테스트 실행으로 Test Results Files
일치하는 각 테스트 결과 파일을 게시합니다.
testResultsFiles
-
테스트 결과 파일
string
;
publishJUnitResults = true
때 필요합니다. 기본값은 **/build/test-results/TEST-*.xml
입니다.
테스트 결과의 파일 경로입니다.
와일드카드 사용할 수 있습니다. 예를 들어 이름이 **/TEST-*.xml
시작하는 모든 XML 파일에 대해 TEST-
.
testRunTitle
-
테스트 실행 타이틀
string
; 선택 사항.
publishJUnitResults = true
때 사용합니다.
이 빌드에 대한 JUnit 테스트 사례 결과의 이름을 제공합니다.
codeCoverageToolOption
-
코드 검사 도구
입력 별칭: codeCoverageTool
.
string
; 허용되는 값: None
, Cobertura
, JaCoCo
. 기본값은 None
입니다.
빌드에 대한 테스트 사례에서 다루는 코드를 결정하는 코드 검사 도구를 지정합니다.
클래스 파일 디렉터리codeCoverageClassFilesDirectories
-
입력 별칭: classFilesDirectories
.
string
;
codeCoverageTool = false
때 필요합니다. 기본값은 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
입니다.
코드 검사에서 게시할 결과를 생성하지 않은 경우 빌드에 실패합니다.
javaHomeOption
-
JAVA_HOME 설정
입력 별칭: javaHomeSelection
.
string
; 필수 사항입니다. 허용되는 값: JDKVersion
(JDK 버전), Path
. 기본값은 JDKVersion
입니다.
빌드 중에 태스크가 검색하는 JDK 버전을 선택하거나 JDK 경로를 수동으로 입력하여 JAVA_HOME 설정합니다.
JDK 버전jdkVersionOption
-
입력 별칭: jdkVersion
.
string
; 선택 사항.
javaHomeSelection = JDKVersion
때 사용합니다. 허용되는 값: default
, 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 아키텍처jdkArchitectureOption
-
입력 별칭: jdkArchitecture
.
string
; 선택 사항.
jdkVersion != default
때 사용합니다. 허용되는 값: x86
, x64
. 기본값은 x64
입니다.
JDK 아키텍처(x86 또는 x64)를 제공합니다.
gradleOptions
-
GRADLE_OPTS 설정
입력 별칭: gradleOpts
.
string
; 기본값은 -Xmx1024m
입니다.
JVM을 시작하기 위해 명령줄 인수를 보내는 데 사용되는 GRADLE_OPTS 환경 변수를 설정합니다.
xmx
플래그는 JVM에 사용할 수 있는 최대 메모리를 지정합니다.
sonarQube 분석실행 sonarQubeRunAnalysis
-
입력 별칭: sqAnalysisEnabled
.
boolean
; 기본값은 false
입니다.
현재 목표를 실행한 후 SonarQube 분석을 실행합니다.
install
또는 package
목표를 먼저 실행해야 합니다.
sonarQubeServiceEndpoint
-
SonarQube 엔드포인트
입력 별칭: sqConnectedServiceName
.
string
;
sqAnalysisEnabled = true
때 필요합니다.
사용할 SonarQube 서버를 지정하는 엔드포인트입니다.
sonarQubeProjectName
-
SonarQube 프로젝트 이름
입력 별칭: sqProjectName
.
string
;
sqAnalysisEnabled = true
때 필요합니다.
sonar.projectName
SonarQube 프로젝트 이름입니다.
sonarQubeProjectKey
-
SonarQube 프로젝트 키
입력 별칭: sqProjectKey
.
string
;
sqAnalysisEnabled = true
때 필요합니다.
sonar.projectKey
SonarQube 프로젝트 고유 키입니다.
sonarQubeProjectVersion
-
SonarQube 프로젝트 버전
입력 별칭: sqProjectVersion
.
string
;
sqAnalysisEnabled = true
때 필요합니다.
sonar.projectVersion
SonarQube 프로젝트 버전입니다.
sonarQubeGradlePluginVersion
-
SonarQube Gradle 플러그 인 버전
입력 별칭: sqGradlePluginVersion
.
string
;
sqAnalysisEnabled = true
때 필요합니다. 기본값은 2.0.1
입니다.
SpotBugs Gradle 플러그 인버전 번호를 포함합니다.
sonarQubeSpecifyDB
-
SonarQube 서버 버전이 5.2보다 낮음
입력 별칭: sqDbDetailsRequired
.
boolean
; 선택 사항.
sqAnalysisEnabled = true
때 사용합니다. 기본값은 false
입니다.
SonarQube 서버 5.1 이하만. 데이터베이스 연결 세부 정보를 지정합니다.
sonarQubeDBUrl
-
Db 연결 문자열
입력 별칭: sqDbUrl
.
string
; 선택 사항.
sqDbDetailsRequired = true
때 사용합니다.
SonarQube 서버 버전 5.1 이하.
sonar.jdbc.url
데이터베이스 연결 설정을 입력합니다. 예: jdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor
.
sonarQubeDBUsername
-
Db 사용자 이름
입력 별칭: sqDbUsername
.
string
; 선택 사항.
sqDbDetailsRequired = true
때 사용합니다.
SonarQube 서버 5.1 이하만.
sonar.jdbc.username
데이터베이스 사용자의 사용자 이름을 입력합니다.
sonarQubeDBPassword
-
Db 사용자 암호
입력 별칭: sqDbPassword
.
string
; 선택 사항.
sqDbDetailsRequired = true
때 사용합니다.
SonarQube 서버 5.1 이하만.
sonar.jdbc.password
데이터베이스 사용자의 암호를 입력합니다.
sonarQubeIncludeFullReport
-
빌드 요약(SQ 5.3 이상) 전체 분석 보고서 포함
입력 별칭: sqAnalysisIncludeFullReport
.
boolean
; 선택 사항.
sqAnalysisEnabled = true
때 사용합니다. 기본값은 true
입니다.
SonarQube 분석이 완료될 때까지 빌드를 지연합니다.
sonarQubeFailWhenQualityGateFails
-
품질 게이트 오류(SQ 5.3 이상) 빌드 실패
입력 별칭: sqAnalysisBreakBuildIfQualityGateFailed
.
boolean
; 선택 사항.
sqAnalysisEnabled = true
때 사용합니다.
SonarQube 서버 버전 5.3 이상만. 빌드에서 SonarQube가 분석을 완료할 때까지 기다려야 하기 때문에 지연이 발생합니다. 빌드 SonarQube를 사용하는대해 자세히 알아봅니다.
checkStyleRunAnalysis
-
실행 체크 스타일
입력 별칭: checkstyleAnalysisEnabled
.
boolean
; 기본값은 false
입니다.
기본 Sun 검사를 사용하여 체크 스타일 도구를 실행합니다. 결과는 빌드 아티팩트로 업로드됩니다.
FindBugs실행 findBugsRunAnalysis
-
입력 별칭: findbugsAnalysisEnabled
.
boolean
; 기본값은 false
입니다.
FindBugs 정적 분석 도구를 사용하여 코드에서 버그를 찾습니다. 결과는 빌드 아티팩트로 업로드됩니다. Gradle 6.0에서는 이 플러그 인이 제거된. 대신 SpotBugs 플러그 인을 사용합니다.
PMD실행 pmdRunAnalysis
-
입력 별칭: pmdAnalysisEnabled
.
boolean
; 기본값은 false
입니다.
PMD Java 정적 분석 도구를 사용하여 코드에서 버그를 찾습니다. 결과는 빌드 아티팩트로 업로드됩니다.
작업 제어 옵션
모든 작업에는 작업 입력 외에 제어 옵션이 있습니다. 자세한 내용은 컨트롤 옵션 및 일반적인 작업 속성참조하세요.
출력 변수
없음.
비고
비고
이 작업의 최신 버전은 Gradle@3사용할 수 있습니다.
비고
Gradle@2이 작업의 최신 버전을 사용할 수 있습니다.
SonarQube 분석의 구성이 작업의 SonarQube 또는 Prepare Analysis Configuration
확장으로 이동되었습니다.
이 작업을 사용하여 Gradle 래퍼 스크립트를 사용하여 빌드합니다.
Gradle 프로젝트에서 래퍼를 생성하려면 어떻게 해야 하나요?
Gradle 래퍼를 사용하면 빌드 에이전트가 JVM 이외의 빌드 에이전트 자체에 소프트웨어 구성 없이 리포지토리에 체크 인된 정확한 Gradle 환경을 다운로드하고 구성할 수 있습니다.
build.gradle이 있는 루트 프로젝트 디렉터리에서 다음 명령을 실행하여 Gradle 래퍼를 만듭니다.
jamal@fabrikam> gradle wrapper
원격 리포지토리에 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 이상 사용자는 Options
-Dhttp.socketTimeout=60000 -Dhttp.connectionTimeout=60000
추가하여 시간 제한을 변경할 수 있습니다. 이렇게 하면 시간 제한이 10초에서 1분으로 증가합니다.