我有一个带身份验证的maven存储库,我希望sbt只使用maven存储库
我的build.sbt:
resolvers += "My Repo" at "https://my.repository.addresss/repo/"
externalResolvers <<= resolvers map { rs =>
Resolver.withDefaultResolvers(rs, mavenCentral = false)
}
但是当我输入sbt clean compile
时,它仍然是从repo1.maven.org下载的,我无法覆盖它!
由于我的maven repo必须进行身份验证,因此当我将默认repo配置放在〜/ .sbt / repositories
时总是会失败有什么方法可以只使用我的回购,并验证成功吗?
答案 0 :(得分:5)
不幸的是,我只能帮你解决问题的一部分。
如果您只想使用maven repo,请查看sbt文档,第proxy repositories章。那里使用了文件〜/ .sbt / repositories。或者,您也可以使用sbt.boot.properties(请参阅Launcher configuration)。
不要忘记按照文档here的构建脚本覆盖构建存储库。如果 你不这样做,sbt仍然试图连接到repo1.maven.org。
我今天做了同样的事情(使用sbt 0.12.3),它有效!
答案 1 :(得分:0)
lazy val yourRepo = "yourRepo" at "https://yourRepo.com/nexus/content/groups/public"
fullResolvers := {
val oldResolvers = fullResolvers.value
val idx = oldResolvers.map(_.isInstanceOf[DefaultMavenRepository$]).indexOf(true)
oldResolvers.take(idx) ++ Seq(yourRepo) ++ oldResolvers.drop(idx)
}
答案 2 :(得分:0)
我遇到过你的类似情况。解决方案是
使用
创建~/.ivy2/.credentials
realm=Sonatype Nexus Repository Manager
host=yourRepo.com
user=yourUser
password=yourpassword
将此行添加到build.sbt
credentials += Credentials(Path.userHome / ".ivy2" / ".credentials")
~/.sbt/repositories
醇>