4
我使用的搖籃2.1設置JVM選項,並有一個Ant任務定義是這樣的:搖籃:上一個Ant任務
task myTask {
doFirst {
ant.taskdef(name: 'mytask',
classname: 'com.blah.Blah',
classpath: configurations.gen.asPath
)
ant.mytask(foo: 'bar')
}
}
有我需要傳遞給com.blah.Blah
爲JVM屬性(因爲,這個ANT任務的創建者已經決定系統屬性是傳遞信息的合理方式),而不是像參數那樣傳遞參數值。我已經嘗試了很多事情,包括:
設置上的所有任務的
systemProperty
與JavaForkOptions
:tasks.withType(JavaForkOptions) { systemProperty 'myproperty', 'blah' }
- 傳遞
-Dmyproperty=blah
當調用gradle
。 - 涉及
ant.systemPropery
,ant.options.forkOptions
,ant.forkOptions
等各種各樣的東西(我不能真正找到這個隨時隨地可靠的文檔)
我不知所措就在這裏。它感覺就像我應該可以這樣說:
task myTask {
doFirst {
ant.taskdef(name: 'mytask',
classname: 'com.blah.Blah',
classpath: configurations.gen.asPath
)
ant.systemProperty 'myProperty', 'blah'
ant.mytask(foo: 'bar')
}
}
...但是,這顯然是行不通的。
您能否提供關於此特定ant任務的更多信息?當使用'gradle -Dprop = value'執行我的構建時,我能夠通過'log(System.getProperty(「prop」),Project.MSG_WARN)'簡單地輸出給定系統屬性的任務成功運行簡單測試。 – 2014-09-25 00:39:09
@MarkVieira:這真的不相關。當然,我可以肯定地告訴用戶使用我的項目始終用'-Dprop = value'標誌運行'gradle',但這並不能解決構建系統缺乏在構建系統中指定某些內容的問題。 – 2014-09-26 03:10:49
我想也許我很困惑。你的帖子使它看起來好像'-D'方法不起作用。如果你唯一的問題是你不想指定一個命令行參數,你可以把系統屬性放在'gradle.properties'文件中。只需以「systemProp」開頭。例如:'systemProp.prop = value'。 – 2014-09-26 14:43:41