如何通过Groovy获取文件build.gradle的完整路径?

6 java groovy path gradle

我需要在buiid.gradle文件附近的java项目中创建文件.我必须在build.gradle文件中创建任务(Groovy任务),我的任务必须在我的项目中的buiid.gradle附近创建文件,但我不知道 - 如何获取buiid.gradle文件的路径,即放入我的项目.

如何通过Groovy获取文件buiid.gradle的完整路径?请帮帮我.

kup*_*fic 19

有几种方法可以实现这一目标.

  1. 如果查看" 使用文件"页面,只需使用file()作为Project对象一部分的方法即可.
  2. 如果您查看Project DSL Docs,您应该会看到该projectDir属性.整个build.gradle脚本中都提供了这些属性.

它们可以分别使用,如下所示:

task myTask << {
    println file('.')
    println projectDir
}
Run Code Online (Sandbox Code Playgroud)

会输出

/full/path/to/your/project/
/full/path/to/your/project/

该目录包含build.gradle任务所在的文件.


Ste*_*ley 5

要获取表示当前正在执行的.gradle文件的java.io.File的句柄,请执行以下操作:

def file = buildscript.sourceFile
Run Code Online (Sandbox Code Playgroud)

就我而言,我需要该脚本的目录,以便可以从同一目录中应用其他配置:

def buildCommonDir = buildscript.sourceFile.getParent()
apply from: "$buildCommonDir/common.gradle"
Run Code Online (Sandbox Code Playgroud)

这种方法适用于任何 .gradle文件,而不仅仅是build.gradle。