我如何告诉gradle run使用自定义工作目录?

问题描述 投票:0回答:1

我想用带有自定义工作目录的gradle run执行一个Java类。根据我对文档的阅读,只需执行gradle run -PworkingDir=<mydir>应该可以解决问题,但是它不起作用,工作目录仍然是项目目录。

我正在使用gradle run作为简单测试脚本的一部分。

java gradle
1个回答
0
投票

从技术上讲,可以通过创建自定义run任务来做到这一点:

task run(dependsOn: classes, type: JavaExec) { main = project.hasProperty('mainClass') ? project.mainClass : '' classpath = sourceSets.main.runtimeClasspath standardInput = System.in if (project.hasProperty('runWorkingDir')) { workingDir = new File(project.runWorkingDir) } }

在这种情况下,您可以指定-PrunWorkingDir=<my-working-dir>。显而易见的警告是,您也必须在调试时执行此操作,并且可能还必须再次为“ Run Single”和“ Debug Single”指定工作目录。

但是,我在考虑允许添加一组变量,而不是为工作目录添加项目属性。在这种情况下,您只需指定一次工作目录,然后只需编写“ -PrunWorkingDir = $ {run-working-dir}”。另外,内置的运行任务可以支持“ runWorkingDir”属性。
© www.soinside.com 2019 - 2024. All rights reserved.