【发布时间】:2015-07-09 21:55:41
【问题描述】:
在我的 maven settings.xml 中,有如下几行:
<server>
<id>releases</id>
<username>myname</username>
<password>mypassword</password>
</server>
另外,在 maven 构建中定义:
<distributionManagement>
<repository>
<uniqueVersion>true</uniqueVersion>
<name>Local repo on Banana</name>
<id>releases</id>
<url>http://banana.com:8081/nexus/content/repositories/releases</url>
<layout>default</layout>
</repository>
</distributionManagement>
在 gradle 中,您可以通过以下方式定义存储库引用:
repositories {
mavenDeployer {
repository (url: "http://banana.com:8081/nexus/content/repositories/releases", id: "releases"){
//...filler...
}
}
}
问题是,gradle 可以引用系统上的主要 settings.xml 文件吗?
(因此会自动提取与存储库 id 匹配的凭据,就像 maven 一样)
到目前为止,我能找到提供身份验证凭据的唯一方法是在 gradle.build 中明确列出它们......就像这样:
repositories {
mavenDeployer {
repository (url: "http://banana.com:8081/nexus/content/repositories/releases", id: "releases"){
authentication(userName: "billybob", password: "bananas?!")
}
}
}
我目前的计划是引用环境变量,但我希望有一种方法可以引用现有的 settings.xml 定义。
【问题讨论】:
-
理想情况下,您应该迁移到
~/.gradle/gradle.properties。 -
我还没有看到。我会顶峰。
-
天哪,答案太丑了;(。我可能只是走 gradle.properties 路线……或者让他们都在机器上使用环境变量……
-
长期的解决方案是:issues.gradle.org/browse/GRADLE-2365,得到解决。