gpt4 book ai didi

gradle - 任务不必要地运行

转载 作者:行者123 更新时间:2023-12-03 05:17:59 25 4
gpt4 key购买 nike

我编写了一个任务,使用通过用户输入选择的主类来运行项目,但这只是在我运行gradle tasks时提示我选择一个主类。为什么会这样,如何防止呢?

task run(dependsOn: "classes", type: JavaExec) {
description "Executes the project using the selected main class"

def selection = null
def mainClasses = []

// Select the java files with main classes in
sourceSets.main.allJava.each {
if(it.text.contains("public static void main")) {
def pkg = relativePath(it) - 'src/main/java/' - '.java'
pkg = pkg.tr "/", "."

println "${mainClasses.size()}. $pkg"
mainClasses << pkg
}
}

// Now prompt the user to choose a main class to use
while(selection == null) {
def input = System.console().readLine "#? "

if(input?.isInteger()) {
selection = input as int

if(selection >= 0 && selection < mainClasses.size()) {
break
} else {
selection = null
}
} else if(input?.toLowerCase() == "quit") {
return
}

if(selection == null) {
println "Unknown option."
}
}

main = mainClasses[selection]
classpath = sourceSets.main.runtimeClasspath
}

最佳答案

Gradle具有配置阶段和执行阶段。
您的构建逻辑实际上是在调用“渐变任务”时运行的,这是因为您的构建逻辑位于“任务配置”部分中。如果要将其移至执行阶段,则应引入doFirst或doLast闭包
有关更多详细信息,请参见gradle build script basicsthis post

关于gradle - 任务不必要地运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20975743/

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