我有一个看起来像这样的结构:

proj/myserver/build.gradle
common/common.gradle
common/server.gradle

build.gradle需要apply from: '../../common/server.gradle'和server.gradle需要apply from:'common.grade

但是这第二个应用程序不起作用,因为server.gradle在相对于common.gradle的位置中寻找build.gradle ...

如何获得所有相对路径正确的?

最佳答案

路径总是相对于项目目录解析,而不是相对于调用apply的脚本插件。在这种情况下,您将必须执行以下操作

apply from: "$projectDir/../../common/common.gradle"

但是,这可能会导致多项目构建的问题(在这种情况下,您应该使用rootDir或其他项目,这些项目的相对路径可能会略有不同。在这种情况下,您可能需要设置一个项目属性来指示“公共(public)”文件夹的位置。

build.gradle
ext {
    commonDir = file("$projectDir/../../common")
}

server.gradle
apply from: "$commonDir/common.gradle"

10-07 19:25
查看更多