在Gradle中配置任意对象

时间:2014-04-11 13:37:07

标签: gradle build.gradle

的build.gradle:

task configure << {
    pos = new java.text.FieldPosition(10)
    // Apply the script
    apply from: 'other.gradle', to: pos
    println pos.beginIndex
    println pos.endIndex
}

other.gradle:

beginIndex = 1;
endIndex = 5;

命令行:

gradle -q configure

以上代码来自Gradle用户指南的Chapter 14。 我很困惑&#34; pos&#34;因此无法理解整段代码。我认为这是一个对象,而不是项目。

对此有任何澄清表示赞赏。

谢谢, Prithula

2 个答案:

答案 0 :(得分:0)

posFieldPosition 对象。您的代码段只是使用其他文件中的值初始化对象。你可以像这样初始化它:

def pos = new java.text.FieldPosition(10)
pos.beginIndex = 1
pos.endIndex = 5

,而是代码段:

apply from: 'other.gradle', to: pos

beginIndex读取endIndexother.gradle的值,并将这些字段设置应用于pos对象。

答案 1 :(得分:0)

好吧,你忘了在pos之前添加'def',你应该通过“def pos”来定义它以使pos成为局部变量。应用'to'可用于配置除此对象之外的对象。通过apply到pos的脚本,你可以将脚本属性设置为pos的属性 完整的代码如下:

build.gradle中的

task configure <<{
 def pos = new java.text.FieldPosition(10)
 apply from: 'other.gradle',to: pos
 println pos.beginIndex
 println pos.endIndex
}

在other.gradle中

beginIndex = 1
endIndex = 5