gpt4 book ai didi

java - Gradle 任务依赖于一个不应该存在的文件

转载 作者:行者123 更新时间:2023-12-03 06:00:29 26 4
gpt4 key购买 nike

我想要一个 Gradle Tasks 来执行我新构建的 Java 应用程序。它还应该将 log/sout 输出到一个名为 的文件中。 servicedispatcher.out .出现的问题是 Gradle,即使我让这个任务依赖于 复制DistributionsToDestination (这将创建错误提示的丢失文件路径)它仍然在任务依赖项之前评估任务代码。这样我就没有机会将此路径定义为日志输出路径。我能做些什么来解决这个问题?

给定以下代码:

task startDispatcher(type:Exec){
workingDir = "servicedispatcher/bin/"
commandLine "cmd", "/c", "servicedispatcher.bat"
File logFile = file("${workingDir}/log/toolbox-components-servicedispatcher.out")
if(logFile.exists() == false){
logFile.createNewFile() // Line 75 of error message
}
standardOutput = new FileOutputStream("${workingDir}/log/servicedispatcher.out")
}

task startToolbox(){
group "Toolbox"
dependsOn copyDistributionsToDestination
dependsOn startDispatcher
}

startDispatcher.mustRunAfter("copyDistributionsToDestination")

错误信息:
FAILURE: Build failed with an exception.

* Where:
Build file 'C:\Development\Testzone\toolbox-backend\build.gradle' line: 75

* What went wrong:
A problem occurred evaluating root project 'toolbox-backend'.
> Das System kann den angegebenen Pfad nicht finden

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 3.32 secs
Das System kann den angegebenen Pfad nicht finden
19:19:48: External task execution finished ':startToolbox'.

最佳答案

也许在执行阶段创建文件?像

doFirst {
if(!logFile.exists()) {
logFile.createNewFile()
}
}

如果任务没有运行,它也不会被创建。使用您当前的代码,在配置阶段执行此操作,如果您启动 Gradle,无论任务是否运行,都会始终创建此文件。

关于java - Gradle 任务依赖于一个不应该存在的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42097326/

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