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