默认情况下,Scala Built Tool(SBT)有一组关于在查找依赖项时如何生成URL的规则。例如,如果我有以下构建文件,
// Project settings
name := "MyProject"
version := "0.1"
organization := "com.me"
scalaVersion := "2.8.1"
// Dependencies
libraryDependencies ++= Seq(
"com.google.guava" %% "guava" % "r09"
)
// Repositories
resolvers += "Maven Central Server" at "http://repo1.maven.org/maven2"
然后SBT尝试在以下URL找到番石榴,
http://repo1.maven.org/maven2/com/google/guava/guava_2.8.1/r09/guava_2.8.1-r09.pom
然而,在这种情况下我正在寻找的库甚至不是Scala,所以结合Scala版本在这里没有意义。如何告诉SBT生成用于Maven存储库的URL的格式是什么?
修改
虽然似乎可以像这样编辑布局,
Resolver.url("Primary Maven Repository",
new URL("http://repo1.maven.org/maven2/"))( Patterns("[organization]/[module]/[module]-[revision].[ext]") )
“[module]”关键字预定义为(工件ID)_(scala版本),“[artifact]”关键字只是“常春藤”,让我回到正方形。
答案 0 :(得分:9)
据我记得,“%%”附加了scala版本,而“%”则没有。尝试
libraryDependencies ++= Seq(
"com.google.guava" % "guava" % "r09"
)
答案 1 :(得分:3)
检查官方sbt
wiki here的最后一个段落(自定义布局)。
基本上SBT允许您使用以下语法:
resolvers += Resolver.url("my-test-repo", url)( Patterns("[organisation]/[module]/[revision]/[artifact].[ext]") )