在尝试publish-localsbt时,我得到以下输出:
[info] :: delivering :: com.mycompany#util_2.9.1;0.1.0-SNAPSHOT :: 0.1.0-SNAPSHOT :: integration :: Tue Jan 15 11:23:01 CET 2013
[info] delivering ivy file to /Users/martink/code/my-project/util/target/scala-2.9.1/ivy-0.1.0-SNAPSHOT.xml
[trace] Stack trace suppressed: run last my-util/*:publish-local for the full output.
[error] (my-util/*:publish-local) Undefined resolver 'local'
Run Code Online (Sandbox Code Playgroud)
我怀疑这是因为我的构建文件中有一些设置,因为publish-local适用于新项目.关于如何publish-local再次工作的任何想法?
Mar*_*cek 16
我们发现问题是由覆盖造成的external-resolvers:
val myRepo = "my-public" at "http://my-nexus-server/content/groups/public/"
externalResolvers := Seq(publicRepo)
Run Code Online (Sandbox Code Playgroud)
我们这样做是为了从我们的解析器中排除默认的Maven中央存储库.但是,这也删除了使用的本地解析器publish-local.
解决方案是添加本地解析器:
val ivyLocal = Resolver.file("local", file(Path.userHome.absolutePath + "/.ivy2/local"))(Resolver.ivyStylePatterns)
externalResolvers := Seq(ivyLocal, myRepo)
Run Code Online (Sandbox Code Playgroud)
另一种解决方案是不覆盖externalResolvers但只是禁用Maven中心.
resolvers := Seq(myRepo)
externalResolvers <<= resolvers map { rs =>
Resolver.withDefaultResolvers(rs, mavenCentral = false)
}
Run Code Online (Sandbox Code Playgroud)
一旦你publish-local,Ivy似乎优先考虑远程快照版本的本地快照版本.要让您发布的工件被另一个项目选中,只需sbt compile在该项目中运行(似乎sbt update甚至不需要).
另见http://www.scala-sbt.org/release/docs/Detailed-Topics/Library-Management.html
| 归档时间: |
|
| 查看次数: |
5497 次 |
| 最近记录: |