我正在定义一个分级任务"launchIPad2Simulator“,它是对另一个已经定义的任务"launchIPadSimulatorfrom”的子类,它是在robovm插件中进行的。目标是设置项目属性,这些属性定义将运行哪个模拟器。
// Run the IPad2 simulator
task launchIPad2Simulator2(type: org.robovm.gradle.tasks.IPadSimulatorTask) {
project.setProperty("robovm.device.name", "iPad-2")
project.setProperty("robovm.arch", "x86")
} 但问题是,我必须首先在gradle.properties文件中定义属性。他们甚至不需要分配任何价值。gradle.properties文件的全部内容:
robovm.device.name
robovm.arch我希望gradle.properties文件为空,但是如果然后运行上面的任务,则会显示错误:错误:(112,0)没有这样的属性: robovm.device.name用于类:。
另外,如果属性仅在以下任务中定义(gradle.properties为空),则忽略它们。
// Run the IPad2 simulator
task launchIPad2Simulator2(type: org.robovm.gradle.tasks.IPadSimulatorTask) {
project.properties.put("robovm.device.name", "iPad-2")
project.properties.put("robovm.arch", "x86")
}那么,在子类任务中动态设置项目属性的正确方法是什么?
===编辑===
好的,现在我看到设置项目属性也不是很好,因为在多个任务中它会被覆盖。所以,也许这不应该是项目属性的第一位。
现在,临时解决方案正在使用任务的命令行调用:
// simulator with properties launched from command line
task launchIPad2Simulator1(type: Exec) {
commandLine 'gradle', '-Probovm.device.name=iPad-2', '-Probovm.arch=x86', 'launchIPadSimulator'
}发布于 2015-08-08 23:36:15
试一试
task launchIPad2Simulator2(type: org.robovm.gradle.tasks.IPadSimulatorTask) {
project.ext."robovm.device.name" = "iPad-2"
project.ext."robovm.arch" = "x86"
}这是向项目对象添加动态属性的gradle语法。
https://stackoverflow.com/questions/31898162
复制相似问题