-1

在一个问题中面临问题:

编写一个gradle程序,生成10个fibonaci系列,任务名称为fibo,变量名称为num。对 num 使用命令行参数。例如,如果任务名称是 test 并且我想传递 10 作为输入,请使用 gradle test -Pnum=10。

我创建了一个函数:

def fibo(n){
    a = 0
    b = 1
    if (n == 1)
    println a
    else if
    (n == 2)
    println a + " " + b
    else if (n > 2) {
        print a + " " + b
        i = 2
        while (i <= n)
        {
        c = a + b
        print " " + c
        a = b
        b = c
        i = i + 1
        }
    }
}

我的问题是,当我遇到如下错误时如何将其与任务链接:

FAILURE:构建失败并出现异常。

* What went wrong:
Task 'fibo' not found in root project 'root'.

* Try:
Run gradle tasks to get a list of available tasks. Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 2.61 secs

或者如何在 gradle 任务中传递参数?

注意:请不要在斐波那契代码中提出优化建议,暂时不用担心。

4

2 回答 2

1

您可以像这样定义任务:

def hello(name) {
        println "Hello, $name"
}

task sayHello() {
        doLast {
                hello sayHelloTo
        }
}

并这样称呼它:

% gradle sayHello -PsayHelloTo=World

> Task :sayHello
Hello, World

BUILD SUCCESSFUL in 518ms
1 actionable task: 1 executed

于 2020-03-31T14:31:48.880 回答
0


def fibo(num)  {
  if (num < 2)  {
    return 1
  } else  {
    return fibo(num-2) + fib(num-1)
  }
}




task (fibo) << {
   println fibo(5)
}


于 2021-06-19T15:14:00.717 回答