2013-03-14 37 views
3

我有我自己的插件,我用'publish-local'翻译本地文件。可以在使用以前版本的sbt的其他项目中解析该插件,但它不再起作用。sbt无法从本地存储库解析插件

build.sbt of the plugin 
sbtPlugin  := true 

name   := "sumosim-webstart" 

organization := "net.entelijan" 

version   := "1.3" 

scalaVersion := "2.10.0" 

crossPaths  := false 

publishTo  := Some("entelijan-repo" at "http://entelijan.net/artifactory/repositories/libs-ivy-local/") 

credentials += Credentials("Artifactory Realm", "entelijan.net", "xxxx", "xxxx") 

//scalacOptions ++= Seq("-deprecation", "-unchecked") 

由SBT产生的输出发布本地

[exec] [info] Packaging /home/wolfi/prj/sumosim/sumosim-pom/sumosim-webstart/target/sbt-0.12/sumosim-webstart-1.3-javadoc.jar ... 
[exec] [info] Done packaging. 
[exec] [info] published sumosim-webstart to /home/wolfi/.ivy2/local/net.entelijan/sumosim-webstart/scala_2.10/sbt_0.12/1.3/poms/sumosim-webstart.pom 
[exec] [info] published sumosim-webstart to /home/wolfi/.ivy2/local/net.entelijan/sumosim-webstart/scala_2.10/sbt_0.12/1.3/jars/sumosim-webstart.jar 
[exec] [info] published sumosim-webstart to /home/wolfi/.ivy2/local/net.entelijan/sumosim-webstart/scala_2.10/sbt_0.12/1.3/srcs/sumosim-webstart-sources.jar 
[exec] [info] published sumosim-webstart to /home/wolfi/.ivy2/local/net.entelijan/sumosim-webstart/scala_2.10/sbt_0.12/1.3/docs/sumosim-webstart-javadoc.jar 
[exec] [info] published ivy to /home/wolfi/.ivy2/local/net.entelijan/sumosim-webstart/scala_2.10/sbt_0.12/1.3/ivys/ivy.xml 

这就是我想要使用的插件plugin.sbt:

resolvers ++= Seq(
    "typesave" at "http://repo.typesafe.com/typesafe/releases", 
    "sbt-idea-repo" at "http://mpeltonen.github.com/maven/", 
    "entelijan" at "http://entelijan.net/artifactory/repo/" 
) 

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.0.0") 

addSbtPlugin("net.entelijan" % "sumosim-webstart" % "1.3") 

最后的errormessage的我得到

[exec] [error] (*:update) sbt.ResolveException: unresolved dependency: net.entelijan#sumosim-webstart;1.3: not found 

做任何人都知道为什么这不起作用?

+0

您的客户项目也使用sbt 0.12.x? – 2013-03-14 08:11:42

+0

是的。你可以在sbt publish-local的输出中看到它。 – wwagner4 2013-03-14 09:25:47

+1

找到其他信息。在搜索存储库时,sbt正在查找C:\ Users \ wwagner \ .ivy2 \ local \ net.entelijan \ sumosim-webstart \ scala_2.9.2 \ sbt_0.12 \ 1.3 \ ivys \ ivy.xml。 2.9.2来自哪里 – wwagner4 2013-03-14 09:51:31

回答

4

据我所知,用于构建插件的Scala版本必须与用于构建sbt本身的Scala版本相匹配。使用Scala 2.9构建Sbt 0.12,使用Scala 2.10构建0.13 sbt。

你的插件项目使用Scala 2.10来构建插件。你的客户端项目可能也使用Scala 2.10,但你使用sbt 0.12来构建它。 Sbt因此试图找到你的Scala 2.9插件,因为你发布了2.10版本,所以它失败了。

+1

它帮助使用2.9定义插件程序。谢谢。 scalaVersion:=“2.9.2” – wwagner4 2013-03-14 12:57:45

0

由于该项目的斯卡拉版本的插件,当它被发表不匹配,则可能需要使用build.sbtaddSbtPlugin另一个版本:

addSbtPlugin("net.entelijan" % "sumosim-webstart" % "1.3", "0.12‌​", "2.10") 

第二个参数是sbtVersion而最后是scalaVersion

请注意,通常情况下,与作为已发布产品的版本不匹配的插件可能会与其他不受支持的sbt和Scala版本发生冲突。