如果存储库凭据是硬编码的,则它们有效,但如果它们来自 gradle.properties,则无效
Repository credentials work if they're hardcoded, but not if they're from gradle.properties
问题
我正在使用 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{}
块,以及 configurations {}
和 dependencies{}
块。他们都正确 return 他们应该的价值观。
我怀疑这可能是范围界定问题,但我不知道它在哪里。我该怎么做才能同时拥有外部文件中的存储库和 gradle.properties
中的凭据?
配置正确,但问题出在 gradle.properties
。目前是这样配置的:
storedUsername = "myUsername"
storedPassword = "myPassword"
引号有问题。您不必将等号右侧的值作为字符串括起来,因此引号被视为文字。换句话说,您发送到服务器的用户名不是 myUsername
,而是 "myUsername"
,服务器上可能不存在。
删除引号将解决此问题:
storedUsername = myUsername
storedPassword = myPassword
问题
我正在使用 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{}
块,以及 configurations {}
和 dependencies{}
块。他们都正确 return 他们应该的价值观。
我怀疑这可能是范围界定问题,但我不知道它在哪里。我该怎么做才能同时拥有外部文件中的存储库和 gradle.properties
中的凭据?
配置正确,但问题出在 gradle.properties
。目前是这样配置的:
storedUsername = "myUsername"
storedPassword = "myPassword"
引号有问题。您不必将等号右侧的值作为字符串括起来,因此引号被视为文字。换句话说,您发送到服务器的用户名不是 myUsername
,而是 "myUsername"
,服务器上可能不存在。
删除引号将解决此问题:
storedUsername = myUsername
storedPassword = myPassword