【发布时间】:2015-06-02 11:00:58
【问题描述】:
我只是想修改程序运行的目录。通常,它是从项目根目录运行的,这让我有点恼火,因为测试程序可能很烦人,因为我的程序会在运行它的地方生成文件和文件夹。
JavaExec 任务有一个名为 JavaExec#workingDir 的属性,这正是我想修改为我选择的不同的属性。
我的问题是:如何修改gradle run 任务才能访问此属性?
【问题讨论】:
我只是想修改程序运行的目录。通常,它是从项目根目录运行的,这让我有点恼火,因为测试程序可能很烦人,因为我的程序会在运行它的地方生成文件和文件夹。
JavaExec 任务有一个名为 JavaExec#workingDir 的属性,这正是我想修改为我选择的不同的属性。
我的问题是:如何修改gradle run 任务才能访问此属性?
【问题讨论】:
您可以使用tasks.<TaskToModify>.property = YourValue 访问任务的属性。
因此,在这种情况下,您必须这样做:
File runningDir = new File('build/run/')
runningDir.mkdirs()
tasks.run.workingDir = runningDir
File#mkdirs() 调用是必要的,因为如果目录不存在,对系统相关 java 可执行文件的调用将导致错误。
【讨论】:
tasks.run.get().workingDir = runningDir