gpt4 book ai didi

gradle - Gradle:从任务中调用Groovy静态方法

转载 作者:行者123 更新时间:2023-12-03 04:56:31 25 4
gpt4 key购买 nike

我有一个使用Groovy插件的Gradle项目。

gradle项目的文件夹结构为:

src
main
groovy
com
acme
runner
resources
build.gradle

我有一个使用 JavaExec的任务,该任务调用 Simple Class中定义的 Simple.groovy的主要方法,如下所示:
task runScript(type: JavaExec) {
description 'Run Groovy script'
// Set main property to name of Groovy script class.
main = 'com.acme.runner.Simple'
// Set classpath for running the Groovy script.
classpath = sourceSets.main.runtimeClasspath
}

我想定义一个任务,在 Simple class中调用另一个方法是否可行,它是否有一个静态方法?谢谢。

最佳答案

一个不太简单的解决方案是根据任务的main值从args方法或脚本主体控制方法调用:

简单规则

package com.playground

switch( args ? args[ 0 ] : null ) {
case 'a':
hello()
break
case 'b':
bye()
break
default:
println 'Don\'t know what you mean'
}

void hello() {
println 'Hello a!'
}

void bye() {
println 'Goodbye a!'
}

gradle任务:
task runScript(type: JavaExec) {
description 'Run Groovy script'
main = 'com.playground.Simple'
classpath = sourceSets.main.runtimeClasspath
args 'a' // 'b'
}

产生
> Task :compileJava NO-SOURCE
> Task :compileGroovy UP-TO-DATE
> Task :processResources NO-SOURCE
> Task :classes

> Task :runScript
Hello a!

关于gradle - Gradle:从任务中调用Groovy静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59307431/

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