gpt4 book ai didi

groovy - 在子类 gradle 任务中设置项目属性

转载 作者:行者123 更新时间:2023-12-01 08:54:08 25 4
gpt4 key购买 nike

我正在定义一个 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 类: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 语法。

关于groovy - 在子类 gradle 任务中设置项目属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31898162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com