Thu*_*rge 4 artifactory gradle
我正在使用 Gradle 并拥有我的存储库配置,这需要凭据。当我对用户名和密码进行硬编码时,一切正常。当我尝试将这些相同的凭据存储在gradle.properties其中时,却没有。
我的文件中的存储库声明build.gradle基本上如下所示:
repositories {
maven {
url 'https://artifactory.example.com/libs/'
credentials {
username "myUsername"
password "myPassword"
}
}
}
Run Code Online (Sandbox Code Playgroud)
一切都很好,我可以连接到我的存储库。
正如您在上面看到的,用户名和密码是硬编码的。我想使其可配置,因此我按照此问题中的建议将以下属性添加到gradle.properties.
storedUsername = "myUsername"
storedPassword = "myPassword"
Run Code Online (Sandbox Code Playgroud)
然后我修改该build.gradle文件以引用这些属性:
repositories {
maven {
url 'https://artifactory.example.com/libs/'
credentials {
username project.storedUsername
password project.storedPassword
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我突然无法连接到我的存储库。当我检查服务器(Artifactory)日志时,我被告知无名用户的访问被拒绝。
这两个文件作为同级文件都位于根目录中。我已添加println "Username: ${project.repoUsername}"到该repositories{}块以及configurations {}和dependencies{}块。它们都正确地返回了它们应该返回的值。
我怀疑这可能是一个范围问题,但我无法弄清楚它在哪里。我该怎么做才能将存储库放在外部文件中并将凭据放在 中gradle.properties?
配置是正确的,但问题出在gradle.properties. 目前是这样配置的:
storedUsername = "myUsername"
storedPassword = "myPassword"
Run Code Online (Sandbox Code Playgroud)
问题出在引号上。您不必将等号右侧的值作为字符串括起来,因此引号将被视为文字。换句话说,您发送到服务器的用户名不是myUsername而是"myUsername",这可能在服务器上不存在。
删除引号将解决此问题:
storedUsername = myUsername
storedPassword = myPassword
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6197 次 |
| 最近记录: |