Java Groovy如何获得build.gradle文件的完整路径?

Java Groovy如何获得build.gradle文件的完整路径?,java,groovy,path,gradle,Java,Groovy,Path,Gradle,我需要在buiid.gradle-file附近的java项目中创建文件。我必须在build.gradle-file中创建任务(Groovy task),我的任务必须在我的项目中的buiid.gradle附近创建文件,但我不知道-如何获得buiid.gradle-file的路径,也就是在我的项目中 Groovy如何获取buiid.gradle文件的完整路径?请帮帮我。有几种方法可以做到这一点 如果查看页面,只需使用file()方法即可,该方法是Project对象的一部分 如果你看房子,你应该会看到

我需要在buiid.gradle-file附近的java项目中创建文件。我必须在build.gradle-file中创建任务(Groovy task),我的任务必须在我的项目中的buiid.gradle附近创建文件,但我不知道-如何获得buiid.gradle-file的路径,也就是在我的项目中


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

有几种方法可以做到这一点

  • 如果查看页面,只需使用
    file()
    方法即可,该方法是
    Project
    对象的一部分
  • 如果你看房子,你应该会看到房子。这些属性在整个
    build.gradle
    脚本中都可用
  • 它们可以分别使用,如下所示:

    task myTask << {
        println file('.')
        println projectDir
    }
    

    task myTask获取表示当前正在执行的.gradle文件的java.io.File的句柄:

    def file = buildscript.sourceFile
    
    在我的情况下,我需要该脚本的目录,以便可以从同一目录应用其他配置:

    def buildCommonDir = buildscript.sourceFile.getParent()
    apply from: "$buildCommonDir/common.gradle"
    

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

    您也可以从userguide中的相关部分开始-@Radim是的,如果您要创建文件,这可能是一种更好的方法。更新了我的答案。
    def buildCommonDir = buildscript.sourceFile.getParent()
    apply from: "$buildCommonDir/common.gradle"