Gradle:获取执行"gradle"的文件夹

Mic*_*iel 25 gradle

我试图使用gradle任务作为"OS不可知的shell脚本".我在编写构建文件的逻辑时没有问题,但我希望能够从任何文件夹运行它.

我的第一次尝试是在路径上放置一个带有build.gradle文件的文件夹,然后尝试执行:

gradle myMask
Run Code Online (Sandbox Code Playgroud)

从不包含build.gradle的文件夹 - 但这不起作用.

我的下一次尝试是:

gradle -b /folder/containing/build.gradle myTask
Run Code Online (Sandbox Code Playgroud)

但这只是在某种程度上起作用.在我的任务中,我想找到CURRENT DIRECTORY中的所有文件.current - 意思不是包含build.gradle的那个,而是我正在执行的那个"gradle ....."

我试过了:

file(".")
Run Code Online (Sandbox Code Playgroud)

file("$projectDir")
Run Code Online (Sandbox Code Playgroud)

还有一些,但所有这些都指向包含构建脚本的文件夹,而不是我正在执行它的那个.

任何想法我该怎么做?

Mic*_*iel 52

最终获胜者是:

System.getProperty("user.dir")
Run Code Online (Sandbox Code Playgroud)


Ren*_*hke 13

file(".")总是返回当前项目文件夹,而不是工作目录.要参考工作目录,您可以使用:

new File(".").absolutePath
Run Code Online (Sandbox Code Playgroud)

希望有所帮助!

勒内