【问题标题】:How to send Artifactory publish credentials from buildscript without hardcoding them?如何从 buildscript 发送 Artifactory 发布凭据而不对其进行硬编码?
【发布时间】:2014-08-12 10:58:17
【问题描述】:

以 Gradle 构建中的这个 sn-p 为例:

repository {
   repoKey = 'libs-snapshot-local'
   username = 'whatever'
   password = 'whatever123'
}

过去,我将 Maven(~/.m2 下的一些设置)配置为简单地传递用户名/密码。如果可能的话,我想避免将我的 Artifactory 服务器的登录凭据放在 buildscript 中。有更安全的解决方法吗?

【问题讨论】:

    标签: security gradle artifactory


    【解决方案1】:

    您可以将gradle.propertiesfile 放入您的 ~/.gradle/ 文件夹中。

    您可以在此文件中输入您的凭据:

    artifactoryUserName = whatever
    artifactoryUserPassword = whatever123
    

    现在您可以在构建脚本中引用这些属性:

    repository {
        repoKey = 'libs-snapshot-local'
        username = project.hasProperty('artifactoryUserName') ? artifactoryUserName : ''
        password = project.hasProperty('artifactoryUserPassword') ? artifactoryUserPassword : ''
    }
    

    【讨论】:

    • 如果在属性文件中找不到它们(例如,因为您在构建服务器上运行构建),您可以回退到环境变量 :) username = project.hasProperty('artifactoryUserName') ? artifactoryUserName : getenv()['ARTIFACTORY_USERNAME'] 相关说明,如果 project.property 如果找不到而不是抛出异常返回 null 会更好。
    • 是否可以全局定义repository 部分并让Gradle 从共享位置加载凭据?
    • @usr-local-ΕΨΗΕΛΩΝ 是的,当然。您可以为此使用例如初始化脚本。 docs.gradle.org/current/userguide/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 2016-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多