天天看點

Gradle 建立建構掃描

建構掃描(build scan)是一個中心化并且可以共享的建構記錄。這個建構記錄通常能夠告訴在建構中發生了什麼并且為什麼會發生。

通過應用建構掃描插件到你的項目中,你可以将你的建構掃描釋出到

https://scans.gradle.com

網站中,并且這個服務是免費的。

你将會建立什麼

這個指南将會指導你有關建構掃描的特性而且這個不需要你對你現有的腳本進行任何修改。

同時你也将會學習到針對給定項目來掃描所有的建構。可選的方案是,你可以通過修改初始化腳本針對你所有項目來啟用建構掃描。

你需要什麼來進行建立

進入你自己的示例項目,或者你可以從 Gradle 上建立一個示例項目。

你的計算機應該需要連上網際網路

通路你的電子郵件位址

大概需要 6 分鐘

選擇一個示例項目

Gradle 已經建立一個示例可用的 Java 項目,這樣你可以用這個項目來示例項目掃描的能力,你如果你需要使用的話,你可以克隆或者下載下傳這個項目。

這個項目的下載下傳位址連結為:

https://github.com/gradle/gradle-build-scan-quickstart $ git clone

Cloning into 'gradle-build-scan-quickstart'...

$ cd gradle-build-scan-quickstart

如果你希望使用你自己的項目的話,你可以跳過這個步驟。

自動應用建構掃描插件(build scan plugin)

從 Gradle 4.3 版本開始,你可以在你的項目中運作 Gradle 掃描,而不需要任何附加配置。

當你使用指令行選項  --scan 來對項目掃描進行釋出的時候,Gradle 将會自動應用需要的插件。在将資料釋出到網上之前,在指令行中将會提示要求你接受許可證和協定。

下面為指令行運作時候的系統輸出。

$ ./gradlew build --scan

Task :compileJava

Task :processResources NO-SOURCE

Task :classes

Task :jar

Task :assemble

Task :compileTestJava

Task :processTestResources NO-SOURCE

Task :testClasses

Task :test

Task :check

Task :build

BUILD SUCCESSFUL

4 actionable tasks: 4 executed

Publishing a build scan to scans.gradle.com requires accepting the Gradle Terms of Service defined at

https://gradle.com/terms-of-service.

Do you accept these terms? [yes, no] yes

Gradle Terms of Service accepted.

Publishing build scan...

https://gradle.com/s/czajmbyg73t62

這種配置機制能夠非常容易的建立臨時性的一次性掃描而不需要你在你的建構檔案中配置相關的插件。

如果你希望配置更加細力度的配置,你可以在你的建構檔案中配置建構掃描插件或者在下面描述的初始化腳本中進行配置。

針對你項目的所有建構啟用建構掃描

針對 Gradle 2.x-5.x 版本,你需要應用  com.gradle.build-scan 插件到你的根建構腳本中(build script)。

從 Gradle 6.0 版本開始,你需要應用 com.gradle.enterprise 插件到你的 settings 腳本中。

請參考  Gradle 建構掃描插件文檔(Gradle Build Scan plugin docs)中的内容來如何将建構掃描插件應用到你的項目中。

接受許可證協定

為了能夠将建構掃描的結果釋出到

中,你需要接受許可協定。

這個可以在指令行進行釋出的時候進行一次性同意協定,你也可以将這個配置到你的 Gradle 建構檔案中,這個配置需要配置在 settings.gradle 檔案中。

有關的配置如下:

settings.gradle

gradleEnterprise {

buildScan {

termsOfServiceUrl = '

https://gradle.com/terms-of-service

'

termsOfServiceAgree = 'yes'

}

buildScan 代碼塊允許你配置這個插件。

在這裡有 2 個參數你需要輸入能夠讓你的建構自動接收許可協定。有關其他的可以用參數,請參考  Build Scans 使用者指南(Build Scans User Manual)頁面中的内容。

如果你在 settings.gradle 檔案中直接配置上面配置的話,你可能會收到:

Could not find method gradleEnterprise() for arguments

錯誤。

這是因為你可能沒有應用插件,你需要在你的 settings.gradle 中添加下面的插件:

plugins {

id "com.gradle.enterprise" version "3.2"           

釋出一個建構掃描

一個建構掃描在指令行中的工具是通過 --scan 指令進行釋出的。

在運作  build 任務的時候,你可以選擇添加 --scan 選項。當建構任務完成以後将會上傳建構資料到  scans.gradle.com 網站上。

在最後,你将會看到已經建立的網站連結,你需要拷貝這個連結到浏覽器上打開。

BUILD SUCCESSFUL in 0s

https://gradle.com/s/uniqueid

線上通路建構掃描

在你第一次通路提供的建構連結的時候,你需要被要求激活建構掃描。

在你的郵件系統中收到的建構掃描激活連結看起如下圖:

按照電子郵件中提供的連結,你單擊連結後,你就可以通路到為你建立的建構頁面了:

你可以通過頁面,通路到有關你這個建構的所有資訊,包括有執行的時間,執行的任務,在每一個任務執行所需要的時間,有關測試的所有結果,使用的插件和需要的依賴。

以及包括有有關指令行的開花和其他的更多一些資訊。

針對所有建構啟用建構掃描(可選)

可選的,你可以通過修改 Gradle 的建構腳本将插件的許可證同意洗液添加到所有的建構中。

具體的修改方法,請參考

https://docs.gradle.com/enterprise/gradle-plugin/#many-projects

頁面中的内容。

還有一些更多的建構能力可以添加到腳本中,例如在什麼條件下釋出建構掃描資訊。

有關更多的詳細内容,請參考 建構掃描使用者手冊(Build Scans User Manual)中的内容。

總結

在這個指南中,你可能已經學到了:

建立一個建構掃描

線上檢視建構掃描的資訊

針對所有建構建立一個初始化腳本來啟用建構掃描

下一個步驟

幫助改善這個文檔

有一些問題和建議?找到一些拼寫錯誤或者錯别字?

與其他所有 Gradle 指南一樣,你可以通過建立一個 GitHub 的幫助來幫助我們進行改善。

請  添加一個問題(add an issue)或者為項目 gradle/guides 建立一個 pull request,開發小組将會對你送出的内容作出回應。

https://www.cwiki.us/display/GradleZH/Creating+Build+Scans