gpt4 book ai didi

Android Studio Gradle - settings.gradle 中的 local.properties 变量(路径)

转载 作者:行者123 更新时间:2023-11-29 20:33:15 24 4
gpt4 key购买 nike

我正在尝试实现一个流程,以便在其他人需要处理该项目时它不会影响我的版本控制。

目前我有一个库模块从另一个项目添加到当前项目中。这是我通过 settings.gradle 文件完成的,如下所示:

include ':MainModule', ':ExternalModule'
project(':ExternalModule').projectDir = new File('C:\\Projects\\AnotherProject\\libraryModule')

我的问题是,如果我这样做,我会影响所有其他从事该项目的开发人员,并且每次有人推送到存储库时,都会更改此文件。我想避免这种情况。

我想在 local.properties 中添加外部库模块的路径,它不会被推送到存储库并由每个开发人员处理。我做了这样的事情:

include ':MainModule', ':ExternalModule'
project(':ExternalModule').projectDir = new File(getExternalModuleDir())

def getExternalModuleDir() {
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
def externalModuleDir = properties.getProperty('module.dir', null)
if (externalModuleDir == null)
throw new GradleException("Module location not found. Define location with module.dir in the local.properties file!")

return externalModuleDir
}

但是我得到以下错误:

Could not find property 'project' on settings 'AwesomeProject'.

我认为这是因为 settings.gradle 没有访问 local.properties(或者 settings.gradle 在 local.properties 之前被调用,我真的不知道确切的流程)。

我做错了什么?我想要实现的流程是否正确?执行此类操作的正确方法是什么?

最佳答案

我最终找到了解决问题的简单方法。我不知道这是最好的解决方案还是最优雅的解决方案,但这就是我实现目标的方式:

def getExternalModuleDir() {
Properties properties = new Properties()
properties.load(new File(rootDir.absolutePath + "/local.properties").newDataInputStream())
def externalModuleDir = properties.getProperty('module.dir', null)
if (externalModuleDir == null) {
throw new GradleException(
""Module location not found. Define location with module.dir in the local.properties file!")
}
return externalModuleDir
}

local.properties 文件中,我设置了我的属性 module.dir:

module.dir=C:\\Projects\\AnotherProject\\libraryModule

唯一的限制是 local.properties 文件应始终位于与 settings.gradle 文件相同的文件夹中(通常是)。

关于Android Studio Gradle - settings.gradle 中的 local.properties 变量(路径),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31699285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com