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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

在Kotlin中使用Gradle构建缓存

發布時間:2025/3/17 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Kotlin中使用Gradle构建缓存 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Kotlin 1.2.21允許Kotlin項目使用構建緩存。通過Gradle的構建緩存功能,可以提升Kotlin代碼的編譯速度,加快開發周期。本文將結合實際例子,介紹利用Gradle加速Kotlin代碼編譯的原理、配置示例以及在IDE中的使用方法。

\\

構建緩存允許Gradle可以復用任何之前調用(包括那些來自其它機器的調用)的任務產出。Kotlin 1.2.21允許Kotlin項目使用構建緩存。

\\

構建緩存的工作原理是在緩存中存儲編譯過的類、測試結果和其它構建工序,同時記錄所有的任務輸入,包括輸入文件內容、相關的類路徑和任務配置。

\\

\\

這常常導致更快的構建。下面的圖標展示了在Gradle的持續集成中使用構建緩存和不使用構建緩存所收集到的構建時間:

\\

\\

本文中,我們將向你闡述,如何使用Gradle的構建緩存來避免不必要的Kotlin編譯,從而加快你的構建過程。

\\

Spek快速示例

\\

你現在就可以嘗試使用Gradle的構建緩存。只需要遵循下面幾個步驟:

\\

Clone Spek?

\\\git clone https://github.com/spekframework/spek.git\cd spek\\

Spek 2.x分支(其默認分支)已經有我們后續要介紹的構建緩存的所有先決條件。

\\

構建和填充緩存

\\

下面的命令會構建Spek并填充本地構建緩存。

\\\? ./gradlew assemble --build-cache\\BUILD SUCCESSFUL in 10s\21 actionable tasks: 21 executed\\

使用--build-cache標識,可以讓Gradle在一個獨立的任務結果緩存中存儲任務結果。

\\

刪除/更改構建結果

\\

這模擬了在另一臺機器上的情況或者做了一次改變并stash(存儲)這次改變的情況。演示的最快方法是使用clean任務。

\\\? ./gradlew clean\\\\

從構建緩存中重新構建

\\

當我們重新構建時,從構建緩存中拉取所有編譯過的Kotlin源碼。

\\\? ./gradlew assemble --build-cache\\BUILD SUCCESSFUL in 2s\21 actionable tasks: 11 executed, 10 from cache\\\\

就是這樣!通過使用Gradle的構建緩存,你重用了編譯過的Kotlin類,而不是又重新編譯!構建速度差不多快了5倍

\\

你可以從這次構建觀測中看到,Kotlin編譯任務從構建緩存中拉取緩存結果;而:jar和:processResources任務沒有從緩存中拉取,因為它們本地生成JAR包和復制文件的速度比從緩存中拉取緩存結果的速度更快。另外Gradle構建緩存也支持緩存:test任務。

\\

當持續集成的一個實例填充了一個共享的構建緩存(開發者可以從中拉取)時,Gradle構建緩存會特別有效。下文羅列了實現這點的更多資源的鏈接。

\\

為你的項目啟用構建緩存

\\

我希望你會在自己的項目上嘗試使用構建緩存——你可以遵循下面的步驟來啟用構建緩存。

\\

首先,你需要確保正在使用Gradle 4.3或者更高版本,這樣才能選擇Kotlin Gradle Plugin來使用新的Gradle APIs。你可以方便地使用Gradle wrapper升級Gradle。

\\

然后,你需要確保正在使用Kotlin 1.2.20或更高版本來進行編譯。你在自己的構建腳本build.gradle中的buildscript {}塊中配置類似如下的聲明:

\\\dependencies {\ classpath \"org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.21\"\}\\\\

然后,我們需要讓Gradle使用構建緩存。有3種啟用構建緩存的方法:

\\
  • 在命令行中使用--build-cache來為當前構建啟用構建緩存。\\t
  • 在$PROJECT_ROOT/gradle.properties中增加org.gradle.caching=true來為整個項目啟用構建緩存。\\t
  • 在$GRADLE_HOME/gradle.properties中增加org.gradle.caching=true來為當前用戶的所有構建啟用構建緩存。\

注意: Android開發者即使設置了android.enableBuildCache=true,也仍需要按照上述方法啟用構建緩存,因為Gradle的構建緩存是獨立于Android的構建緩存的。

\\

我們可以選擇通過將run和test actions委派給Gradle的方式,來利用IDE的構建緩存。

\\

在IntelliJ中啟用構建緩存

\\

如果你使用IntelliJ來執行Gradle actions,你需要在IDE配置中勾選“Delegate IDE build/run actions to Gradle(將IDE 構建/運行動作委派給Gradle)”,從而在IntelliJ中構建和運行測試時利用構建緩存。

\\

\\

注意: Android Studio默認這樣做。

\\

緩存kapt任務

\\

目前即使使用--build-cache,針對kapt的緩存也默認是禁用的,因為Gradle還沒有一種方法來映射注解處理器的輸入和輸出。你可以通過在kapt配置中將useBuildCache設置為true來明確啟用針對Kotlin注解處理任務的構建緩存。

\\\kapt {\useBuildCache = true\}\\\\

推薦讀物

\\

你可以通過下列資源來了解更多關于利用Gradle構建緩存的信息:

\\
  • Configuring the build cache\\t
  • Setting up a shared, remote build cache ??\\t
  • Debugging build cache misses\\t
  • Developing cacheable custom tasks\

結論

\\

使用kotlin-gradle-plugin 1.2.20及以上版本編譯Kotlin代碼,可以利用Gradle的--build-cache功能來加快開發周期。我們正在繼續努力來擴展支持構建緩存的任務集。

\\

關于作者

\\

Eric Wendelin是Gradle的軟件工程師,旨在讓軟件構建更簡單。

\\

查看英文原文:Using Gradle build cache with Kotlin

\\

感謝覃云對本文的審校。

總結

以上是生活随笔為你收集整理的在Kotlin中使用Gradle构建缓存的全部內容,希望文章能夠幫你解決所遇到的問題。

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