如何为 Gradle Wrapper 提供凭据而不将它们嵌入到我的项目的 gradle-wrapper.properties 文件中?

Sal*_*ley 6 gradle gradlew

为了引导 Gradle-Wrapper,我需要从需要 HTTP Basic-Auth 的 Artifactory 中提取 Gradle 发行版。我的构建环境无法访问外部世界 - 这被公司代理阻止。我的问题是如何提供凭据以便 Gradle 可以引导。

Gradle 文档建议将用户名和密码放入 gradle-werapper.properties

如果我将 gradle-wrapper.properties 放入我的项目中,那么任何有权访问我的源代码的人都可以访问我的凭据。或者,如果我将 gradle-wrapper.properties 文件放入我的构建映像中,那么我的所有构建都将绑定到相同的凭据。这两个都不能接受。

我更愿意做的是让 Gradle Wrapper 从环境变量中获取它的凭据。我的运行时环境使得以正确的方式提供凭据变得非常容易 - 但是有没有办法让 Gradle 使用来自环境变量的凭据?

wak*_*eer 7

提供凭证的方式有以下三种:

  1. ~/.gradle文件夹中创建一个文件 gradle.properties
systemProp.gradle.wrapperUser=username
systemProp.gradle.wrapperPassword=password
Run Code Online (Sandbox Code Playgroud)
  1. pass throw系统属性( 注:用户名、密码可以是环境变量)
./gradlew -Dgradle.wrapperUser=$username -Dgradle.wrapperPassword=$password
Run Code Online (Sandbox Code Playgroud)
  1. 将系统属性添加到 GRADLE_OPTS
export GRADLE_OPTS=-Dgradle.wrapperUser=$username -Dgradle.wrapperPassword=$password
Run Code Online (Sandbox Code Playgroud)


小智 6

从你提供的文件来看。在 {user.home} 目录中创建 .gradle 文件夹,如果它不存在。输入 gradle.properties:

  • systemProp.gradle.wrapperUser=用户名
  • systemProp.gradle.wrapperPassword=密码

现在您只需要 distributionUrl 指向您的 URL,gradle 将处理凭据。

  • 这似乎不起作用。一直报错。将凭据添加到 url 效果很好。`https://username:password@url/repo/distributions/gradle-2.13-all.zip` 但这不是你想要的。 (2认同)