日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

gradle 构建完成自动删除_Gradle 6.6 RC6 发布,引入配置缓存特性,大幅提升构建性能

發布時間:2024/4/13 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gradle 构建完成自动删除_Gradle 6.6 RC6 发布,引入配置缓存特性,大幅提升构建性能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Gradle 6.6 RC6 發布了。Gradle 是一個基于 Apache Ant 和 Apache Maven 概念的項目自動化構建工具,支持依賴管理和多項目,類似 Maven,但比之簡單輕便。它使用一種基于 Groovy 的特定領域語言來聲明項目設置,而不是傳統的 XML。

此版本最大亮點是引入了一個實驗性選項:配置緩存(Configuration caching),它是一個主要的性能優化特性,可以使 Gradle 跳過構建的配置階段,并盡快開始執行任務。

配置緩存

在運行任何任務之前,Gradle 需要運行配置階段。當前,這是在每次構建調用時完成的,并且會產生大量的開銷,尤其是在大型項目中。

配置緩存通過緩存配置階段的結果并將其重新用于后續構建,從而可以顯著提高構建性能。使用配置緩存,Gradle 可以在不影響構建配置的任何內容發生變化的情況下完全跳過配置階段,如下所示:

此外,啟用配置緩存后,Gradle 能夠優化任務執行,并默認情況下并行執行更多任務。

目前該特性處于高度試驗階段,默認情況下不啟用或建議用于生產環境。可以通過--configuration-cache在命令行上提供參數或將其添加到運行配置中來啟用此實驗特性。

標準化的運行時類路徑改善緩存命中率

對于最新檢查和構建緩存,Gradle 需要確定兩個任務輸入屬性是否具有相同的值。為此,Gradle 首先將兩個輸入標準化,然后比較結果。

現在,運行時類路徑分析將檢查清單META-INF文件和屬性文件,而忽略對注釋、空格和順序差異的更改。此外還可以有選擇地忽略不影響運行時類路徑的屬性。

normalization { runtimeClasspath { metaInf { ignoreAttribute("Implementation-Version") ignoreProperty("timestamp") } }}

類路徑上的任何 ZIP 文件被重新生成并且僅因不重要的值或注釋而不同的情況下,將提高生成高速緩存命中的可能性。這種規范化最有用的最常見情況是 JAR 文件,不過它也可以被應用于類路徑上的任何 ZIP 文件,例如 AAR、WAR 和 APK 文件。

處理用戶提供的憑證

構建有時會要求用戶提供憑據,例如,為了發布工件,可能需要憑證才能與工件存儲庫進行身份驗證。將憑據保留在構建腳本之外是一個好習慣。

此版本提供了用于憑證的新 API,該憑證通過建立約定以使用 Gradle 屬性提供憑證來簡化憑證的使用,Gradle 屬性可以作為命令行參數、環境變量或gradle.properties文件中的值提供給構建環境。當 Gradle 知道某個時候該版本將需要憑證并且憑證已丟失時,它還會執行“快速失效”。

從此版本開始,可以輕松地將用于身份驗證的憑證外部化到工件存儲庫:

repositories { maven { name = 'mySecureRepository' credentials(PasswordCredentials) // url = uri(<>) }}

mySecureRepository將在 Gradle 屬性中搜索名稱為mySecureRepositoryUsername和mySecureRepositoryPassword的憑據。

同時還可以直接使用新的 provider API 向外部工具提供憑據:

tasks.register('login', Exec) { def loginProvider = providers.credentials(PasswordCredentials, 'login') inputs.property('credentials', loginProvider) doFirst { PasswordCredentials loginCredentials = loginProvider.get() // use credentials }}

上面的憑據將在 Gradle 屬性中使用名稱loginUsername和loginPassword進行搜索。

此外,此版本還有其它改進,包括對 Java 編譯 --release 標志的支持、文件系統監視的穩定性改進、依賴管理的改進,以及 bug 修復等,詳情查看更新說明:https://docs.gradle.org/6.6-rc-6/release-notes.html

總結

以上是生活随笔為你收集整理的gradle 构建完成自动删除_Gradle 6.6 RC6 发布,引入配置缓存特性,大幅提升构建性能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。