首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在子类级任务中设置项目属性

在子类级任务中设置项目属性
EN

Stack Overflow用户
提问于 2015-08-08 20:18:12
回答 1查看 11.5K关注 0票数 4

我正在定义一个分级任务"launchIPad2Simulator“,它是对另一个已经定义的任务"launchIPadSimulatorfrom”的子类,它是在robovm插件中进行的。目标是设置项目属性,这些属性定义将运行哪个模拟器。

代码语言:javascript
复制
// 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文件的全部内容:

代码语言:javascript
复制
robovm.device.name
robovm.arch

我希望gradle.properties文件为空,但是如果然后运行上面的任务,则会显示错误:错误:(112,0)没有这样的属性: robovm.device.name用于类:。

另外,如果属性仅在以下任务中定义(gradle.properties为空),则忽略它们。

代码语言:javascript
复制
// 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")
}

那么,在子类任务中动态设置项目属性的正确方法是什么?

===编辑===

好的,现在我看到设置项目属性也不是很好,因为在多个任务中它会被覆盖。所以,也许这不应该是项目属性的第一位。

现在,临时解决方案正在使用任务的命令行调用:

代码语言:javascript
复制
// simulator with properties launched from command line
task launchIPad2Simulator1(type: Exec) {
  commandLine 'gradle', '-Probovm.device.name=iPad-2', '-Probovm.arch=x86', 'launchIPadSimulator'
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-08 23:36:15

试一试

代码语言:javascript
复制
task launchIPad2Simulator2(type: org.robovm.gradle.tasks.IPadSimulatorTask) {
  project.ext."robovm.device.name" = "iPad-2"
  project.ext."robovm.arch" = "x86"
}

这是向项目对象添加动态属性的gradle语法。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31898162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档