如何使SBT/Play在SBT -plugins.jar目录中查找



刚刚在工作中捡起一个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.properitesplay.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)

至少您应该能够在尝试的存储库列表中看到它。

最新更新