2013-03-14 67 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版本發生衝突。