我们在中心点使用一些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)
我不确定这是否被视为内部接口,但DefaultScriptHandler有一个getSourceFile()方法,并且可以通过buildscript属性访问当前实例,因此您可以使用buildscript.sourceFile.它是File指向当前脚本的实例
我仍然不确定我是否很好地理解了这个问题,但是您可以使用以下代码找到当前 gradle 脚本的路径:
println project.buildscript.sourceFile
Run Code Online (Sandbox Code Playgroud)
它给出了当前正在运行的脚本的完整路径。这就是你要找的吗?
您可以在相对路径中搜索此脚本,例如:
if(new File(rootDir,'../path/A.gradle').exists ()){
apply from: '../path/A.gradle'
}
Run Code Online (Sandbox Code Playgroud)