gpt4 book ai didi

maven - 动态加载 `maven` 的本地 `buildscript` 存储库路径

转载 作者:行者123 更新时间:2023-12-04 15:00:05 27 4
gpt4 key购买 nike

我试图为上述问题找到合适的解决方案,但到目前为止找不到出路,因此在这里发帖以获得一些正确和精确的问题解决方案。

我在代码版本控制中包含了应用程序 build.gradle 因为 build.gradle 经常发生变化(在插件依赖级别)我需要跟踪这个文件在版本中 - 长话短说。现在,作为每个团队成员对于以下指定的依赖项都有不同的位置 - 我试图从我的 customLocalPaths.properties 加载它,但似乎没有从 .properties 文件加载变量在这里工作。下面列出的 url 属性似乎只接受纯字符串。

buildscript{
repositories{
google()
jcenter()
maven{
url 'D:\\android_workspace_dependencies\\My_XYZ_dependency\\lib' // <-- need to make this path dynamic
}
}
}

知道如何使 url 路径动态化(比如从变量加载它)而不是静态字符串。我曾经无法解决路径类型的错误。

Note: The .properties file works fine. I am using other variables from same .properties file in my app build.gradle without any issues. I also tried to load partial path i.e. single directory name but in vain.

最佳答案

首先,如果你想从本地 libs 目录中解析依赖项,你应该使用 flat directory repository type而不是 maven 存储库。

为了解决您的具体问题,这里至少有两个基于标准 Gradle 功能的简单解决方案:

解决方案 1 - 使用 Init Script

Init Script 功能允许您根据当前构建环境自定义 Gradle 执行。每个团队成员都可以在本地 Init 脚本中声明他们特定的本地存储库,如下所示:

$USER_HOME/.gradle/init.gradle

allprojects {
buildscript {
repositories {
flatDir {
dirs "c:/DEV/libs"
}
// or with local mavel repo:
// maven { url "c:/DEV/libs" }
}
}
}

项目构建脚本将只包含公共(public)/共享存储库

build.gradle

buildscript{
repositories{
google()
jcenter()
}
}

解决方案 2 - 使用 Gradle user properties

您可以使用 Gradle 属性来配置存储库 url/路径,并让团队成员在其用户特定的 gradle.properties 文件中提供此属性值:

build.gradle

buildscript {
repositories {
google()
jcenter()
if (project.hasProperty("myLocalLibRepo")) {
flatDir {
dirs myLocalLibRepo
}
// or with local mavel repo:
// maven { url myLocalLibRepo }
}
}
}

团队成员的属性文件:

$USER_HOME/.gradle/gradle.properties

myLocalLibRepo=c:/DEV/libs

关于maven - 动态加载 `maven` 的本地 `buildscript` 存储库路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67118693/

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