如何找到当前gradle脚本的路径?

Hor*_*ux7 11 file gradle

我们在中心点使用一些Gradle基础脚本.此脚本包含在大量脚本中的"apply from:"中.此基本脚本需要访问相对于脚本的文件.如何找到基本脚本的位置?

一个build.gradle的示例:

apply from: "../../gradlebase/base1.gradle"
Run Code Online (Sandbox Code Playgroud)

base1.gradle的示例

println getScriptLocation()
Run Code Online (Sandbox Code Playgroud)

Mic*_*zek 7

我不确定这是否被视为内部接口,但DefaultScriptHandler有一个getSourceFile()方法,并且可以通过buildscript属性访问当前实例,因此您可以使用buildscript.sourceFile.它是File指向当前脚本的实例


Opa*_*pal 5

我仍然不确定我是否很好地理解了这个问题,但是您可以使用以下代码找到当前 gradle 脚本的路径:

println project.buildscript.sourceFile
Run Code Online (Sandbox Code Playgroud)

它给出了当前正在运行的脚本的完整路径。这就是你要找的吗?

  • 正确答案是没有“项目”。只有 'buildscript.sourceFile' 返回正确的路径。 (6认同)

Bil*_*Lin 0

您可以在相对路径中搜索此脚本,例如:

if(new File(rootDir,'../path/A.gradle').exists ()){
    apply from: '../path/A.gradle'
}
Run Code Online (Sandbox Code Playgroud)