【问题标题】:How do I provide credentials for Gradle Wrapper without embedding them in my project's gradle-wrapper.properties file?如何为 Gradle Wrapper 提供凭据而不将它们嵌入到我的项目的 gradle-wrapper.properties 文件中?
【发布时间】:2022-02-17 14:07:09
【问题描述】:

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

Gradle 文档suggests putting the username & password into gradle-werapper.properties

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

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

【问题讨论】:

    标签: gradle gradlew


    【解决方案1】:

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

    systemProp.gradle.wrapperUser=username
    systemProp.gradle.wrapperPassword=password
    

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

    【讨论】:

    • 这似乎不起作用。一直报错。将凭据添加到 url 效果很好。 https://username:password@url/repo/distributions/gradle-2.13-all.zip 但这不是你想要的。
    • 在尝试使用 artifactory 作为 repo 时,我也一无所获。可能是神器的问题?我不确定如何解决这个问题,或者是否有一个。也许是另一种身份验证方法?
    【解决方案2】:

    提供凭证的三种方式:

    1. 在文件夹 {user.home}\.gradle 中创建文件 gradle.properties
    • systemProp.gradle.wrapperUser=用户名
    • systemProp.gradle.wrapperPassword=password
    1. pass throw系统属性(注意:用户名、密码可以是环境变量)

      ./gradlew -Dgradle.wrapperUser=$username -Dgradle.wrapperPassword=$password

    2. 将系统属性添加到 GRADLE_OPTS

      导出 GRADLE_OPTS=-Dgradle.wrapperUser=$username -Dgradle.wrapperPassword=$password

    【讨论】:

      猜你喜欢
      • 2015-04-24
      • 1970-01-01
      • 2021-05-13
      • 2021-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-12
      • 1970-01-01
      相关资源
      最近更新 更多