游戏框架和SBT:将凭据传递到关系passowrd保护回购(Play framework and s

2019-07-29 18:15发布

我需要定义为一个依赖以下库:

网址: http://deploy.cloud.testmx.com:8081/nexus/content/groups/public/

用户:testmx

传:testmx @ testmx

的groupId:testmx

的artifactId:testmxcommons

版本:1.0.0-SNAPSHOT

所以我定义了以下项目/ Build.scala

import sbt._
import Keys._
import PlayProject._

object ApplicationBuild extends Build {

    val appName         = "testmxproject"
    val appVersion      = "1.0-SNAPSHOT"

    val appDependencies = Seq(
      "mysql" % "mysql-connector-java" % "5.1.18",
      "testmx" % "testmxcommons" % "1.0.0-SNAPSHOT"
    )

    val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(
      credentials += ("testmx public", "deploy.cloud.testmx.com:8081", "testmx", "testmx@testmx"),
      resolvers += "testmx public" at "http://deploy.cloud.testmx.com:8081/nexus/content/groups/public/"
    )

}

我得到以下错误:

[warn]  module not found: testmx#testmxcommons;1.0.0-SNAPSHOT

[warn] ==== testmx public: tried
[warn]   http://deploy.cloud.testmx.com:8081/nexus/content/groups/public/testmx/textmxcommons/1.0.0-SNAPSHOT/textmxcommons-1.0.0-SNAPSHOT.pom

我尝试了几种办法,但他们给我同样的错误......

我检查了这篇文章 ,这太问题

而且还试图保存用户名和密码在一个外部文件,因为它的解释这里和这里 。

任何的想法?

- 编辑澄清 -

我改变了真实的URL,因为它不是一个公共回购我的工作......真正的网址有没有和SBT试图找到确实存在的POM ...

PS:顺便说一句..哪里SBT scaladocs ???

Answer 1:

你需要告诉SBT要发布什么信息库:

publishTo := Some("testmx public" at "http://deploy.cloud.testmx.com:8081/nexus")

此外,如果你不想让你的凭据生成文件,你可以告诉它通过增加线本地检索它们:

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

而在你的~/.ivy2目录下创建一个.credentials文件是这样的:

realm=Sonatype Nexus Repository Manager
host=deploy.cloud.testmx.com
user=testmx
password=testmx@testmx

见https://github.com/harrah/xsbt/wiki/Publishing更多



Answer 2:

经过凭据时有两个问题。

第一个是,我传递错误的领域。 (感谢亚历克斯Varju这一个)

你必须通过相同的领域,试图登录服务器时向您发送(只要按下Ctrl-Shift-I键或F12铬,得到了网络看看它)

第二个问题是,我是路过的端口号,并SBT似乎并不喜欢...

所以,最终我做到了这样,它的作品确定:

val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(
  credentials += ("Sonatype Nexus Repository Manager", "deploy.cloud.testmx.com", "testmx", "testmx@testmx"),
  resolvers += "testmx public" at "http://deploy.cloud.testmx.com:8081/nexus/content/groups/public/"
)

设置在不同的文件的凭据,如预期的工作确定也具有相同的修改...

感谢所有对你的答案



文章来源: Play framework and sbt: passing credentials to a nexus passowrd protected repo