在执行Gradle任务之前获取用户选择

时间:2011-11-28 14:07:39

标签: gradle

我正在将我们的Capistrano部署应用程序切换到Gradle。

这里要求使脚本用户具有交互性。

我很难在任务之间提供用户输入。

task('hello') << {
    println "hello" }

task('copy', type: Copy) {
    some_user_input = prompt("Are you sure to copy this file. ") ... // Here wants something like that
    if(some_user_input==true){
      from(file('srcDir'))
      into(buildDir)
    } }

我正在寻找这个问题的解决方案。如果你知道这种方式,请告诉我。

提前致谢。

2 个答案:

答案 0 :(得分:15)

Gradle允许您在构建脚本中使用现有的Ant任务。您可以使用[Ant输入任务] [1]来实现此目的:

ant.input(message: 'Are you sure to copy this file?', validargs: 'y,n', addproperty: 'doDeleteFile')

if(ant.doDeleteFile == 'y') {
    // Call copy task
}

请注意,与System.console()不同,这也适用于Gradle守护程序(在Linux上测试)。

答案 1 :(得分:0)

您是否尝试过使用控制台?像这样:

if (System.console().readLine().toLowerCase() == 'y') ...