【问题标题】:Nexus credentials in Jenkins with sbtJenkins 中的 Nexus 凭证与 sbt
【发布时间】:2016-06-25 21:35:47
【问题描述】:

我正在尝试将一个 jar 发布到 nexus。我将 sbt 与 scala 一起使用,并且我有一个配置文件,其中包含所需的凭据。我在运行sbt publish 时遇到了麻烦,它给了我未经授权的错误。我需要能够将我的凭据链接到我的 sbt 构建。我正在尝试将我的配置目标设置为~/.ivy2/.credentials,但它似乎不起作用。有人对如何解决这个问题有任何建议吗?

谢谢。

【问题讨论】:

    标签: jenkins sbt nexus credentials


    【解决方案1】:

    你可以把你所有的凭证文件放在一个公共目录下,并添加一个全局配置文件来把它们都添加到sbt中。

    ~/.sbt/0.13/credentials.sbt

    credentials ++= (Path.userHome / ".sbt" / "credentials")
      .listFiles
      .collect {
        case f if f.isFile => Credentials(f)
      }
      .toSeq
    

    ~/.sbt/credentials/my-nexus-repo

    realm=Sonatype Nexus Repository Manager
    host=mynexusrepo.com
    user=username
    password=password
    

    ~/.sbt/credentials/my-artifactory-repo

    realm=Artifactory Realm
    host=myartifactoryrepo.com
    user=username
    password=password
    

    【讨论】:

    • 实际上,这对 Jenkins 有什么作用?有人告诉我,可能有很多服务器运行 jenkins。有没有比使用这些凭据更新所有服务器更好的方法?
    • 你必须在每一个将要构建你的项目的詹金斯奴隶上都这样做。在实践中,我们将构建工具的全局配置和快速设置脚本保存在 git repo 中。
    • 你能补充一下我应该把这些文件放在哪里吗,詹金斯的家(~Path.userHome)是什么?
    【解决方案2】:

    喜欢sbt doc

    有两种方法可以为此类存储库指定凭据:

    内联

    credentials += Credentials("Some Nexus Repository Manager", "my.artifact.repo.net", "admin", "password123")

    外部文件

    credentials += Credentials(Path.userHome / ".ivy2" / ".credentials")
    

    凭证文件是一个属性文件,其中包含密钥领域、主机、用户和密码。例如:

    realm=My Nexus Repository Manager
    host=my.artifact.repo.net
    user=admin
    password=admin123
    

    【讨论】:

      猜你喜欢
      • 2015-12-04
      • 2021-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-23
      • 1970-01-01
      • 2018-06-13
      • 1970-01-01
      相关资源
      最近更新 更多