gpt4 book ai didi

gradle - 如果存储库凭据是硬编码的,则它们有效,但如果它们来自 gradle.properties,则无效

转载 作者:行者123 更新时间:2023-12-03 03:06:12 25 4
gpt4 key购买 nike

问题

我正在使用 Gradle 并拥有需要凭据的存储库配置。当我硬编码用户名和密码时,一切正常。当我尝试将这些相同的凭据存储在 gradle.properties 中时,它没有。

背景

我的 build.gradle 文件中的存储库声明基本上如下所示:

repositories {
maven {
url 'https://artifactory.example.com/libs/'
credentials {
username "myUsername"
password "myPassword"
}
}
}

一切正常,我可以连接到我的存储库。

什么不起作用

如您所见,用户名和密码是硬编码的。我想让它可配置,所以我关注 the advice in this question将以下属性添加到 gradle.properties

storedUsername = "myUsername"
storedPassword = "myPassword"

然后我修改 build.gradle 文件以引用这些属性:

repositories {
maven {
url 'https://artifactory.example.com/libs/'
credentials {
username project.storedUsername
password project.storedPassword
}
}
}

但是,我突然无法连接到我的存储库。当我检查我的服务器 (Artifactory) 日志时,我被告知没有名字的用户访问被拒绝。

这两个文件作为同级文件位于根目录中。我已将 println "Username: ${project.repoUsername}" 添加到 repositories{} block ,以及 configurations {}dependencies{} block 。它们都正确地返回了它们应该返回的值。

我怀疑这可能是一个范围界定问题,但我不知道它在哪里。我该怎么做才能同时拥有外部文件中的存储库和 gradle.properties 中的凭据?

最佳答案

配置正确,但问题出在gradle.properties。目前是这样配置的:

storedUsername = "myUsername"
storedPassword = "myPassword"

问题在于引号。您不必将等号右侧的值作为字符串括起来,因此引号被视为文字。换句话说,您发送到服务器的用户名不是 myUsername,而是 "myUsername",这可能在服务器上不存在。

删除引号将解决此问题:

storedUsername = myUsername
storedPassword = myPassword

关于gradle - 如果存储库凭据是硬编码的,则它们有效,但如果它们来自 gradle.properties,则无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44163365/

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