獲得財產,如果我使用命令行,像這樣在我gradle.properties
文件中設置一個屬性:如何從gradle.properties
gradle build -Dproperty=myString
,並在我的Android項目在我的資源目錄configuration.properties
,如何我可以從gradle.properties
文件中獲得configuration.properties
的新屬性嗎?
我已經試過以下設置:
gradle.properties
property=defaultString
anotherProperty=defaultBoolean
configuration.properties
[email protected]@
POTEN TIAL SOLUTION 1
對每種口味使用configuration.properties
文件。
每種味道的資源聽起來像一個好主意,但我想在main
有一個默認列表,並且只覆蓋所需的屬性。我有很多屬性,有些味道只需要重寫一個。所以這確實有用,但並不理想。
潛在的解決方案2
使用buildConfigField
傳遞什麼,我需要的Java代碼。
這裏的問題是,我有兩個模塊:app
和api
- 在api
是app
的依賴。在app
build.gradle
中設置buildConfigField
可讓我在app
代碼中訪問它們,但我也需要從api
模塊訪問它。
我不認爲你可以。什麼是用例? (順便說一句,'-D'沒有在'gradle.properties'中設置(project)屬性;它爲Gradle JVM設置了一個系統屬性。相當於在'gradle.properties'中設置屬性的命令行是'-P'。) – 2014-11-06 07:33:42
謝謝你的迴應。我目前從項目源代碼中的configuration.properties中讀取(從主應用程序模塊和獨立的api模塊中)。例如,我有一個名爲'marketplace'的屬性,它根據我正在構建的應用程序的哪個變體替換代碼中的某些內容。我實際上希望能夠從應用程序的'productFlavors'配置這些,因爲這是我計劃用於不同構建變體的 - 但似乎無法將它們設置在那裏。 – 2014-11-06 09:00:47