簡體   English   中英

在 build.gradle 中使用 java 變量

[英]Using java variable in build.gradle

有什么方法可以在我的 build.gradle 版本字段中使用 java 變量,這樣我每次進行新構建時都不需要手動更改構建腳本?

所以像這樣

group = 'project_name'
version = <insert variable from java file>
sourceCompatibility = '1.8'

使用 Java 源文件來管理項目的版本是向后的。 您應該讓您的構建系統(在本例中為 Gradle)來管理版本。 當您更新 Gradle 中的版本時,您應該以這樣一種方式設置構建,以便新版本在整個項目中傳播。

在構建腳本中,這很容易實現; 您只需在需要的任何地方引用version屬性。 這個概念與在應用程序中傳遞數據沒有任何不同。 Remember that, in Gradle, the build script is written in Groovy or Kotlin and normal programming logic applies (the build script is essentially an object which implements both org.gradle.api.Project and org.gradle.api.Script ).

更困難的部分是確保您的應用程序可以看到版本,而無需在構建腳本和源代碼中更新版本。 但是,有多種方法可以實現這一點,例如:

  1. 創建一個屬性文件作為資源並使用processResources Gradle 任務將項目的版本注入到所述屬性文件中。 然后在運行時讀取資源以獲取應用程序版本。
  2. 創建自定義 Gradle 任務,該任務生成屬性文件作為資源。 然后在運行時讀取資源以獲取應用程序版本。
  3. 創建一個自定義 Gradle 任務,該任務生成代表您的應用程序版本的 Java 源文件(例如AppVersion.java )。
  4. 使用jar Gradle 任務設置清單的Implementation-Version屬性。 然后在運行時讀取此屬性以獲取應用程序的版本。
  5. 如果使用 Java 9+ 和模塊,那么您可以讓compileJava Gradle 任務設置模塊版本。 然后您可以在運行時讀取模塊版本。

您可能還需要考慮將版本保留在gradle.properties文件中,並將其從那里讀入您的構建腳本(Gradle 為此提供了 API)。 這樣,當您更新版本時,不必重新編譯構建腳本(至少 Kotlin DSL 就是這種情況)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM