3
是否可以聲明或更改通過gradle代碼訪問的Java變量?如何通過gradle腳本聲明/更改Java變量
我找到了Is it possible to declare a variable in Gradle usable in Java?,它告訴我如何聲明可通過Java代碼訪問Android項目的變量。
是否有可能對「正常」的Java項目做同樣的事情?我想根據執行哪個任務設置一個變量。
感謝您的幫助!
是否可以聲明或更改通過gradle代碼訪問的Java變量?如何通過gradle腳本聲明/更改Java變量
我找到了Is it possible to declare a variable in Gradle usable in Java?,它告訴我如何聲明可通過Java代碼訪問Android項目的變量。
是否有可能對「正常」的Java項目做同樣的事情?我想根據執行哪個任務設置一個變量。
感謝您的幫助!
感謝@PeterNiederwieser我解決我的問題:
在我gradle.build我使用:
task usernameMaxio(type: Copy) {
from 'src/main/resources/properties'
into 'build/resources/main/properties'
expand([
username: 'Maxio'
])
}
,我通過訪問:
Properties properties = new Properties();
ClassLoader loader = Thread.currentThread().getContextClassLoader();
InputStream stream = loader.getResourceAsStream("properties/app.properties");
try {
properties.load(stream);
} catch (IOException | NullPointerException e) {
WebOptionPane.showMessageDialog(null, "Couldn't read app.properties", "Fehler",
WebOptionPane.ERROR_MESSAGE);
e.printStackTrace();
return;
}
name = properties.getProperty("username");
在我app.properties:
username=${username}
一個常見的解決方案是生成/解迷資源文件(例如,屬性文件)並從Java代碼中讀取。 – 2014-09-01 21:27:50
@PeterNiederwieser我已經想過,但我沒有找到一個解決方案:(你有一個代碼片段或片段本身的參考嗎?非常感謝! – Chris 2014-09-01 21:34:47
http://chimera.labs.oreilly。 com/books/1234000001741/ch01.html#_keyword_expansion不是聲明一個新的'Copy'任務,而是配置Java插件的'processResources'任務。 – 2014-09-01 21:41:09