다음을 통해 공유


Gradle@1 - Gradle v1 작업

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

Syntax

# 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 래퍼에 대해 자세히 알아보세요.


options - 옵션
string.

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


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

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

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


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

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


publishJUnitResults - TFS/Team Services에 게시
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 빌드의 기본 클래스 디렉터리인 (Gradle 4 이상)에서 build/classes/java/main 클래스를 검색합니다.


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 설정합니다.


jdkVersionOption - JDK 버전
입력 별칭: 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 설정하려고 시도합니다.


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 분석 실행
입력 별칭: sqAnalysisEnabled. boolean. 기본값은 false입니다.

현재 목표를 실행한 후 SonarQube 분석을 실행합니다. install 또는 package 목표를 먼저 실행해야 합니다.


sonarQubeServiceEndpoint - SonarQube 엔드포인트
입력 별칭: sqConnectedServiceName. string. 필요한 경우 sqAnalysisEnabled = true입니다.

사용할 SonarQube 서버를 지정하는 엔드포인트입니다.


sonarQubeProjectName - SonarQube 프로젝트 이름
입력 별칭: sqProjectName. string. 필요한 경우 sqAnalysisEnabled = true입니다.

SonarQube 프로젝트 이름, 즉 입니다 sonar.projectName.


sonarQubeProjectKey - SonarQube 프로젝트 키
입력 별칭: sqProjectKey. string. 필요한 경우 sqAnalysisEnabled = true입니다.

SonarQube 프로젝트 고유 키, 즉 입니다 sonar.projectKey.


sonarQubeProjectVersion - SonarQube 프로젝트 버전
입력 별칭: sqProjectVersion. string. 필요한 경우 sqAnalysisEnabled = true입니다.

SonarQube 프로젝트 버전, 즉 입니다 sonar.projectVersion.


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 검사를 사용하여 Checkstyle 도구를 실행합니다. 결과는 빌드 아티팩트로 업로드됩니다.


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

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


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

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


작업 제어 옵션

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

출력 변수

없음

설명

참고

이 작업의 최신 버전은 Gradle@3 사용할 수 있습니다.

참고

이 작업의 최신 버전은 Gradle@2 사용할 수 있습니다.

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분으로 증가합니다.

요구 사항

요구 사항 Description
파이프라인 유형 YAML, 클래식 빌드
실행 중 에이전트, DeploymentGroup
요청 자체 호스팅 에이전트에는 이 작업을 사용하는 작업을 실행하기 위한 다음 요구 사항과 일치하는 기능이 있어야 합니다. java
Capabilities 이 작업은 작업의 후속 작업에 대한 요구를 충족하지 않습니다.
명령 제한 사항 모두
설정 가능한 변수 모두
에이전트 버전 1.91.0 이상
작업 범주 빌드