Gradle构建脚本中的“包装器”条目是否代替了Gradle包装器(gradlew)?

时间:2018-11-08 16:37:16

标签: gradle wrapper gradlew

在包装程序任务中使用gradle版本是否消除了使用gradlew的需要?

wrapper {
    gradleVersion = '4.10.2'
}

task foo {
    println "...bar"
}

包装程序似乎是作为“配置项目”阶段的一部分自动执行的,如果是的话,似乎是管理此问题的“更干净”的方式(即,要处理的文件更少,嵌入到实际的gradle构建中)脚本等)。

Gradle的新手,只是想弄清楚...

添加...

我添加了“ foo”任务来阐明我的困惑点。

1-我正在使用“ gradle foo”执行脚本

2-在此过程中,我注意到“包装器”任务会自动调用

我的困惑点在于,似乎包括包装器条目将强制使用正确版本的Gradle(即为什么还要自动调用包装器任务)。经过检查,似乎将版本包含在包装器任务中是将版本获取到Gradle的属性文件中的另一种方法(建议在生成包装器时在命令行上提供该版本)。

实时学习,感谢您解决这个问题。

1 个答案:

答案 0 :(得分:0)

  

我正在使用“ gradle foo” 2执行脚本-在此过程中,我注意到“ wrapper”任务会自动调用

不,不是。如果是这样,那么以下脚本将显示“ hello”:

wrapper {
    gradleVersion = '4.10.2'
    doLast {
        println 'hello'
    }
}

task foo {
    println "...bar"
}

您看到的是包装器任务的配置,如果您执行gradle wrapper,则将调用包装器任务,并将在项目中为gradle的4.10.2版本安装(或升级)包装器。< / p>

不再需要此任务配置。如the documentation中所述,您可以调用包装器任务并直接在命令行上使用gradle wrapper --gradle-version 4.10.2指定版本。

请注意,在脚本中,行println "...bar"是在任务foo被配置时执行的,而不是在被执行时执行的。无论执行什么操作,您都将始终在控制台中看到bar...印刷。