3

私は自分のプラグインを持っていて、それを「publish-local」でローカルに処理します。以前のバージョンの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")

これは、sbtpublish-localによって生成された出力です。

 [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")

そして最後に私が受け取るエラーメッセージ

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

なぜこれが機能しないのか誰かが知っていますか?

4

2 に答える 2

4

私の知る限り、プラグインのビルドに使用されるScalaバージョンは、sbt自体のビルドに使用されたScalaバージョンと一致する必要があります。Sbt0.12はScala2.9でビルドされ、sbt0.13はScala2.10でビルドされます。

プラグインプロジェクトはScala2.10を使用してプラグインをビルドします。クライアントプロジェクトもおそらくScala2.10を使用していますが、sbt0.12を使用してビルドしています。したがって、SbtはScala 2.9のプラグインを見つけようとしますが、2.10で公開したため、失敗します。

于 2013-03-14T10:44:03.583 に答える
2

プロジェクトの Scala バージョンは公開時のプラグインと一致しないため、別のバージョンのaddSbtPlugininを使用することをお勧めしbuild.sbtます。

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

2 番目のパラメーターはsbtVersionwhile で、最後のパラメーターは forscalaVersionです。

一般に、公開されたアーティファクトとしてのバージョンと一致しないプラグインは、サポートされていない他のバージョンの sbt および Scala で壊れる可能性があることに注意してください。

于 2013-12-31T23:49:01.933 に答える