【问题标题】:How can I use an Encrypted Password to a Maven Repository in Gradle如何在 Gradle 中使用 Maven 存储库的加密密码
【发布时间】:2023-03-09 08:11:02
【问题描述】:

我目前正在尝试将 maven 构建转换为 Gradle 构建。我遇到的阻碍是我们的内部工件被部署到需要身份验证才能读取的内部存储库。

而且您知道身份验证的含义...用户名和密码。问题是我不想要求开发人员将他们的密码作为明文存储在他们的硬盘上。 Maven 支持password encryption,但我不知道如何让 Gradle 做到这一点。

是否有一些对 Ivy CredentialStore 支持加密密码的神奇访问?还是我必须等待新版本?

【问题讨论】:

    标签: encryption passwords maven nexus gradle


    【解决方案1】:

    gradle-credentials 插件可让您加密 gradle.encrypted.properties 文件的内容,然后该文件将作为 credentials 对象的属性在构建中可用。

    The gradle maven settings plugin 将允许您使用Maven's system 来加密/解密凭据。

    【讨论】:

    • 非常感谢github.com/mark-vieira/gradle-maven-settings-plugin。在这个问题上花了这么多时间之后,我可以用已经设置和工作的东西来解决这个问题。只有 gradle 的人不会有 settings.xml 文件,所以他们必须买一个,但它就像一个魅力。
    • 好吧,感谢维护者 Mark Vieira 和 Andres Almiray。我只是用他们的东西。 :)
    【解决方案2】:

    我们使用 Artifactory,Ivy 的 CredentialsStore 工作正常。

    repositories {
      org.apache.ivy.util.url.CredentialsStore.INSTANCE.addCredentials(REALM, HOST, USER, PASSWORD);
      mavenRepo urls: [ "http://repo.mycompany.com/repo" ]
    }
    

    要让每个开发人员使用不同的用户名,请创建一个 gradle.properties 文件,其中包含

    HOST=repo.mycompany.com
    REALM=My Company Realm
    USER=theusername
    PASSWORD={DESede}xyz123abc
    

    {DESede} 加密密码前缀可能是Artifactory specific convention

    【讨论】:

    • 如果我使用 artifactory 那就太好了,但是我的网站使用了 nexus。任何通用的解决方案?
    • Brian Fox 表示他们将在jira.codehaus.org/browse/MNG-4626 中为 Nexus 添加服务器端加密密码支持
    • Nexus 具有用户令牌功能,可以替换用户名和密码,因此您无需对其进行加密。只需将上述内容与未加密的令牌一起使用
    猜你喜欢
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 2016-12-25
    • 2020-03-20
    • 1970-01-01
    • 2012-04-07
    • 2011-04-26
    • 2012-04-08
    相关资源
    最近更新 更多