ope*_*sas 6 dependencies scala sbt playframework
我需要将以下库定义为依赖项:
网址: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/"
)
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
[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
Run Code Online (Sandbox Code Playgroud)
我尝试了几种替代品,但他们给了我同样的错误......
任何的想法?
- 编辑澄清 -
我更改了真正的网址,因为它不是我正在使用的公共回购...真正的网址就在那里,而sbt试图找到的pom确实存在...
ps:BTW .. sbt scaladocs在哪里???
Man*_*rdt 11
您需要告诉SBT您要发布到哪个存储库:
publishTo := Some("testmx public" at "http://deploy.cloud.testmx.com:8081/nexus")
Run Code Online (Sandbox Code Playgroud)
此外,如果您不想在Build文件中保留凭据,可以通过添加以下行来告诉它在本地检索它们:
credentials += Credentials(Path.userHome / ".ivy2" / ".credentials"),
Run Code Online (Sandbox Code Playgroud)
并在您的~/.ivy2目录中创建一个.credentials这样的文件:
realm=Sonatype Nexus Repository Manager
host=deploy.cloud.testmx.com
user=testmx
password=testmx@testmx
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅https://github.com/harrah/xsbt/wiki/Publishing
传递凭据时存在两个问题.
首先是我传递了错误的王国.(感谢Alex Varju这个)
您必须通过服务器在尝试记录时发送给您的相同领域(只需按下ctrl-shift-I或F12 on chromium并进入网络查看它)
第二个问题是我传递了端口号,并且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/"
)
Run Code Online (Sandbox Code Playgroud)
按照预期,将您的凭据设置在不同的文件中,使用相同的修改也可以正常工作...
感谢大家的回答