刚刚在工作中捡起一个Scala/Play项目,我试图了解SBT在使用Apache Maven后的工作方式。
Typesafe和Sonatype仓库最近在工作中被阻塞了,当我运行构建时,它抱怨缺少插件jar。SBT似乎总是只尝试在线回购,即使我在plugins.sbt
文件中指定了额外的存储库,如下所示:
[warn] [NOT FOUND ] play#sbt-plugin;2.1.1!sbt-plugin.jar (22ms)
[warn] ==== typesafe-ivy-releases: tried
我确实看到这个jar存在于本地play repo(在%PLAY_HOME%/repositories/local
下),我确实看到local
在play的全局sbt.boot.properites
和play.boot.properties
文件中指定。
我怎样才能让SBT真正看到那里(在看了其他在线资源之后)?
我还在Play和SBT boot.properties
文件中添加了以下内容,希望明确指出它,但它没有帮助:
play-local: file://${play.home}/../repository/local/, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]
在这一点上,我被难住了。我希望在构建时至少看到一个local: tried消息。是否有办法使SBT在本地查找sbt-plugins.jar
?是否存在某种缓存?我错过什么了吗?请建议。
EDIT1(3/12/2014):按要求,这是我的插件。sbt文件(本地,项目级)
import sbt._
import Defaults._
logLevel := Level.Warn
resolvers ++= Seq(
"Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/",
"sonatype-releasess" at "http://oss.sonatype.org/content/repositories/releases/"
)
addSbtPlugin("play" % "sbt-plugin" % "2.1.1")
addSbtPlugin("org.scalastyle" % "scalastyle-sbt-plugin" % "0.3.1")
addSbtPlugin("com.github.play2war" % "play2-war-plugin" % "1.0")
我也有一个根级sbt.plugins
文件(在%PLAY_HOME%/framework/project
下),看起来像这样:
logLevel := Level.Warn
resolvers += Classpaths.typesafeResolver
addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "0.1.4")
addSbtPlugin( "com.typesafe.sbtscalariform" % "sbtscalariform" % "0.5.1")
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.1.0")
以下是play clean
命令在projRootsrcmain level
执行的标准输出:
[info] Loading project definition from C:pathtomyprojsrcmain
[warn] [NOT FOUND ] play#sbt-plugin;2.1.1!sbt-plugin.jar (29ms)
[warn] ==== typesafe-ivy-releases: tried
[warn] http://repo.typesafe.com/typesafe/ivy-releases/play/sbt-plugin/scala_2.9.2/sbt_0.12/2.1.1/jars/sbt-plugin.jar
[warn] [NOT FOUND ] org.scalastyle#scalastyle-sbt-plugin;0.3.1!scalastyle-sbt-plugin.jar (204ms)
[warn] ==== sonatype-releasess: tried
[warn] http://oss.sonatype.org/content/repositories/releases/org/scalastyle/scalastyle-sbt-plugin_2.9.2_0.12/0.3.1/scalastyle-sbt-plugin-0.3.1.jar
[warn] [NOT FOUND ] com.github.play2war#play2-war-plugin;1.0!play2-war-plugin.jar (13ms)
[warn] ==== sbt-plugin-releases: tried
[warn] http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases/com.github.play2war/play2-war-plugin/scala_2.9.2/sbt_0.12/1.0/jars/play2-war-plugin.jar
[warn] [NOT FOUND ] com.typesafe.sbteclipse#sbteclipse-plugin;2.1.1!sbteclipse-plugin.jar (31ms)
[warn] ==== typesafe-ivy-releases: tried
[warn] http://repo.typesafe.com/typesafe/ivy-releases/com.typesafe.sbteclipse/sbteclipse-plugin/scala_2.9.2/sbt_0.12/2.1.1/jars/sbteclipse-plugin.jar
[warn] [NOT FOUND ] com.typesafe.sbtidea#sbt-idea;1.1.1!sbt-idea.jar (28ms)
[warn] ==== typesafe-ivy-releases: tried
[warn] http://repo.typesafe.com/typesafe/ivy-releases/com.typesafe.sbtidea/sbt-idea/scala_2.9.2/sbt_0.12/1.1.1/jars/sbt-idea.jar
[warn] [NOT FOUND ] com.typesafe.sbteclipse#sbteclipse-core;2.1.1!sbteclipse-core.jar (31ms)
[warn] ==== typesafe-ivy-releases: tried
[warn] http://repo.typesafe.com/typesafe/ivy-releases/com.typesafe.sbteclipse/sbteclipse-core/scala_2.9.2/sbt_0.12/2.1.1/jars/sbteclipse-core.jar
[warn] [NOT FOUND ] org.scalastyle#scalastyle_2.9.2;0.3.1!scalastyle_2.9.2.jar (0ms)
[warn] ==== sonatype-releasess: tried
[warn] http://oss.sonatype.org/content/repositories/releases/org/scalastyle/scalastyle_2.9.2/0.3.1/scalastyle_2.9.2-0.3.1.jar
[warn] [NOT FOUND ] com.github.scopt#scopt_2.9.2;2.1.0!scopt_2.9.2.jar (0ms)
[warn] ==== sonatype-releasess: tried
[warn] http://oss.sonatype.org/content/repositories/releases/com/github/scopt/scopt_2.9.2/2.1.0/scopt_2.9.2-2.1.0.jar
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: FAILED DOWNLOADS ::
[warn] :: ^ see resolution messages for details ^ ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
您是否在plugins.sbt中拥有本地Play存储库作为SBT解析器?尝试在plugins.sbt中添加以下内容:
resolvers += Resolver.file("Local Play repo", file(System.getProperty("PLAY_HOME") + "/repositories/local"))(Resolver.ivyStylePatterns)
至少您应该能够在尝试的存储库列表中看到它。