分享方式:


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 包裝函式
輸入別名: wrapperScriptstring. 必要。 預設值:gradlew

指定 gradlew 將用於建置之存放庫內的包裝函式位置。 Windows (上的代理程式,包括 Microsoft 裝載的代理程式) 必須使用 gradlew.bat 包裝函式。 Linux 或 macOS 上的代理程式可以使用 gradlew 殼層腳本。 深入瞭解 Gradle 包裝函式。


options - 選項
string.

指定將傳遞至 Gradle 包裝函式的命令列選項。 如需詳細資訊 ,請參閱 Gradle 命令列


tasks - 任務
string. 必要。 預設值:build

工作 (要執行的 Gradle) 。 工作名稱的清單應該以空格分隔,而且可以從 gradlew tasks 命令提示字元發出。

如需詳細資訊 ,請參閱 Gradle 組建腳本基本概 念。


workingDirectory - 工作目錄
輸入別名: cwdstring.

指定要執行 Gradle 組建的工作目錄。 如果未指定工作目錄,工作就會使用存放庫根目錄。


publishJUnitResults - 發佈至 TFS/Team Services
boolean. 預設值:true

將 Gradle 組建所產生的 JUnit 測試結果發佈至 Azure Pipelines。 工作會將每個測試結果檔案比 Test Results Files 對發佈為 Azure Pipelines 中的測試回合。


testResultsFiles - 測試結果檔案
string. 當 publishJUnitResults = true 時為必要。 預設值:**/build/test-results/TEST-*.xml

測試結果的檔案路徑。 可以使用萬用字元。 例如, **/TEST-*.xml 針對名稱開頭為 TEST- 的所有 XML 檔案。


testRunTitle - 測試回合標題
string. 選擇性。 使用 時 publishJUnitResults = true

提供此組建的 JUnit 測試結果名稱。


codeCoverageToolOption - 程式碼涵蓋範圍工具
輸入別名: codeCoverageToolstring. 允許值:NoneCoberturaJaCoCo。 預設值:None

指定程式碼涵蓋範圍工具,以判斷組建測試案例所涵蓋的程式碼。


codeCoverageClassFilesDirectories - 類別檔案目錄
輸入別名: classFilesDirectoriesstring. 當 codeCoverageTool = false 時為必要。 預設值:build/classes/main/

包含類別檔案和封存檔案的逗號分隔清單, (.jar、.war 等等) 。 這些目錄中的類別檔案會報告程式碼涵蓋範圍。 一般而言,工作會在 (下 build/classes/java/main 搜尋 Gradle 4+) 下的類別,這是 Gradle 組建的預設類別目錄。


codeCoverageClassFilter - 類別包含/排除篩選
輸入別名: classFilterstring. 選擇性。 使用 時 codeCoverageTool != None

要包含或排除類別的逗號分隔篩選清單,使其無法收集程式碼涵蓋範圍。 例如: +:com.*+:org.*-:my.app*.*


codeCoverageFailIfEmpty - 遺失程式碼涵蓋範圍結果時失敗
輸入別名: failIfCoverageEmptyboolean. 選擇性。 使用 時 codeCoverageTool != None 。 預設值:false

如果程式碼涵蓋範圍未產生任何要發佈的結果,則建置會失敗。


javaHomeOption - 設定JAVA_HOME依據
輸入別名: javaHomeSelectionstring. 必要。 允許的值: JDKVersion (JDK 版本) 。 Path 預設值:JDKVersion

選取工作在建置期間探索的 JDK 版本,或手動輸入 JDK 路徑來設定JAVA_HOME。


jdkVersionOption - JDK 版本
輸入別名: jdkVersionstring. 選擇性。 使用 時 javaHomeSelection = JDKVersion 。 允許的值: default1.9 (JDK 9) 、 1.8 (JDK 8) 、 (JDK 7) 、 1.71.6 (JDK 6) 。 預設值:default

嘗試探索所選 JDK 版本的路徑,並據以設定JAVA_HOME。


jdkDirectory - JDK 路徑
輸入別名: jdkUserInputPathstring. 當 javaHomeSelection = Path 時為必要。

將JAVA_HOME設定為指定的路徑。


jdkArchitectureOption - JDK 架構
輸入別名: jdkArchitecturestring. 選擇性。 使用 時 jdkVersion != default 。 允許值:x86x64。 預設值:x64

提供 JDK 架構 (x86 或 x64) 。


gradleOptions - 設定GRADLE_OPTS
輸入別名: gradleOptsstring. 預設值:-Xmx1024m

設定GRADLE_OPTS環境變數,用來傳送命令列引數來啟動 JVM。 旗 xmx 標會指定 JVM 可用的記憶體上限。


sonarQubeRunAnalysis - 執行 SonarQube 分析
輸入別名: sqAnalysisEnabledboolean. 預設值:false

執行目前目標之後,執行 SonarQube 分析。 installpackage 目標應該先執行。


sonarQubeServiceEndpoint - SonarQube 端點
輸入別名: sqConnectedServiceNamestring. 當 sqAnalysisEnabled = true 時為必要。

端點,指定要使用的 SonarQube 伺服器。


sonarQubeProjectName - SonarQube 專案名稱
輸入別名: sqProjectNamestring. 當 sqAnalysisEnabled = true 時為必要。

SonarQube 專案名稱,即 sonar.projectName


sonarQubeProjectKey - SonarQube 專案金鑰
輸入別名: sqProjectKeystring. 當 sqAnalysisEnabled = true 時為必要。

SonarQube 專案唯一索引鍵,即 sonar.projectKey


sonarQubeProjectVersion - SonarQube 專案版本
輸入別名: sqProjectVersionstring. 當 sqAnalysisEnabled = true 時為必要。

SonarQube 專案版本,即 sonar.projectVersion


sonarQubeGradlePluginVersion - SonarQube Gradle 外掛程式版本
輸入別名: sqGradlePluginVersionstring. 當 sqAnalysisEnabled = true 時為必要。 預設值:2.0.1

包含 SpotBugs Gradle 外掛程式的版本號碼。


sonarQubeSpecifyDB - SonarQube 伺服器版本低於 5.2
輸入別名: sqDbDetailsRequiredboolean. 選擇性。 使用 時 sqAnalysisEnabled = true 。 預設值:false

SonarQube 伺服器 5.1 和更低版本。 指定資料庫連接詳細資料。


sonarQubeDBUrl - Db 連接字串
輸入別名: sqDbUrlstring. 選擇性。 使用 時 sqDbDetailsRequired = true

SonarQube 伺服器 5.1 版和更低版本。 輸入資料庫連接設定,也就是 sonar.jdbc.url 。 例如:jdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor


sonarQubeDBUsername - 資料庫使用者名稱
輸入別名: sqDbUsernamestring. 選擇性。 使用 時 sqDbDetailsRequired = true

SonarQube 伺服器 5.1 和更低版本。 輸入資料庫使用者的使用者名稱,也就是 sonar.jdbc.username


sonarQubeDBPassword - 資料庫使用者密碼
輸入別名: sqDbPasswordstring. 選擇性。 使用 時 sqDbDetailsRequired = true

SonarQube 伺服器 5.1 和更低版本。 輸入資料庫使用者的密碼,也就是 sonar.jdbc.password


sonarQubeIncludeFullReport - 在組建摘要中包含完整分析報告, (SQ 5.3+)
輸入別名: sqAnalysisIncludeFullReportboolean. 選擇性。 使用 時 sqAnalysisEnabled = true 。 預設值:true

延遲建置,直到 SonarQube 分析完成為止。


sonarQubeFailWhenQualityGateFails - 在 SQ 5.3+ (品質閘道失敗時失敗)
輸入別名: sqAnalysisBreakBuildIfQualityGateFailedboolean. 選擇性。 使用 時 sqAnalysisEnabled = true

僅限 SonarQube 伺服器 5.3 版或更新版本。 引進延遲,因為組建必須等候 SonarQube 完成分析。 深入瞭解 如何針對組建使用 SonarQube


checkStyleRunAnalysis - 執行 Checkstyle
輸入別名: checkstyleAnalysisEnabledboolean. 預設值:false

使用預設的 Sun 檢查執行 Checkstyle 工具。 結果會上傳為組建成品。


findBugsRunAnalysis - 執行 FindBugs
輸入別名: findbugsAnalysisEnabledboolean. 預設值:false

使用 FindBugs 靜態分析工具來尋找程式碼中的 Bug。 結果會上傳為組建成品。 在 Gradle 6.0 中, 已移除此外掛程式。 請改用 SpotBugs 外掛程式。


pmdRunAnalysis - 執行 PMD
輸入別名: pmdAnalysisEnabledboolean. 預設值:false

使用 PMD JAVA 靜態分析工具來尋找程式碼中的 Bug。 結果會上傳為組建成品。


工作控制選項

除了工作輸入之外,所有工作都有控制選項。 如需詳細資訊,請參閱 控制選項和一般工作屬性

輸出變數

無。

備註

注意

此工作的較新版本可在 Gradle@3取得。

注意

此工作有較新版本可在 Gradle@2使用。

SonarQube 分析的設定已移至工作 Prepare Analysis Configuration 中的SonarQubeSonarCloud延伸模組。

使用此工作來建置使用 Gradle 包裝函式腳本。

如何?從我的 Gradle 專案產生包裝函式嗎?

Gradle 包裝函式可讓組建代理程式下載並設定簽入存放庫的確切 Gradle 環境,而不需在 JVM 以外的組建代理程式本身上設定任何軟體設定。

  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 分鐘。

規格需求

需求 描述
管線類型 YAML、傳統組建
在 上執行 Agent、DeploymentGroup
要求 自我裝載代理程式必須具備符合下列需求的功能,才能執行使用此工作的作業: java
Capabilities 此工作不符合作業中後續工作的任何需求。
命令限制 任何
可設定變數 任何
代理程式版本 1.91.0 或更新版本
工作類別 建置