[英]Set the project properties in subclassed gradle task
我正在定义一个gradle任务“launchIPad2Simulator”,它在robovm gradle插件中继承了另一个已经定义的任务“launchIPadSimulatorfrom”。 目标是设置定义哪个模拟器将运行的项目属性。
// 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 for class:org.gradle.api.internal.project .DefaultProject_Decorated显示。
此外,如果属性仅在任务中定义如下(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'
}
尝试
task launchIPad2Simulator2(type: org.robovm.gradle.tasks.IPadSimulatorTask) {
project.ext."robovm.device.name" = "iPad-2"
project.ext."robovm.arch" = "x86"
}
这是向项目对象添加动态属性的gradle语法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.