bintray からカスタム sbt プラグインを公開/使用するのに問題があります。bintrayで公開できsbt-plugin
ますが、それを使用しようとすると、リゾルバーは別のパスを使用します。
私は公式ガイドに従いましたが、それをプラグインの最新バージョンに適応させました。これbuild.sbt
を私のプラグインに入れました:
lazy val commons = Seq(
organization in ThisBuild := "me.my.app",
version in ThisBuild := "0.1.0"
)
lazy val root = (project in file(".")).
settings(commons ++ BintrayPlugin.bintrayPublishSettings: _*).
settings(
sbtPlugin := true,
name := "sbt-plugin",
description := "Share configuration and plugins accros app projects",
bintrayOmitLicense := true,
publishMavenStyle := false,
bintrayRepository := "sbt-plugins",
bintrayOrganization := None
).
settings(
addSbtPlugin("me.lessis" % "bintray-sbt" % "0.3.0"),
addSbtPlugin("org.scalariform" % "sbt-scalariform" % "1.6.0"),
addSbtPlugin("org.scalastyle" % "scalastyle-sbt-plugin" % "0.8.0")
)
sbt-plugin> publish
タスクは正常に完了し、プラグインを me.my.app/sbt-plugin/scala_2.10/sbt_0.13/0.1.0/jars/sbt-plugin.jar に公開
します
次に、追加addSbtPlugin("me.my.app" % "sbt-plugin" % "0.1.0")
しmy-project\project\plugins.sbt
てリロードします。しかし、彼は失敗します
[warn] ==== bintray-{organization}-{repo}: tried
[warn] https://dl.bintray.com/{organization}/sbt-plugins/me/my/app/sbt-plugin_2.10_0.13/0.1.0/sbt-plugin-0.1.0.pom
...
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: me.my.app#sbt-plugin;0.1.0: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn] Note: Some unresolved dependencies have extra attributes. Check that these dependencies exist with the requested attributes.
[warn] me.my.app:sbt-plugin:0.1.0 (scalaVersion=2.10, sbtVersion=0.13)
[warn]
[warn] Note: Unresolved dependencies path:
[warn] me.my.app:sbt-plugin:0.1.0 (scalaVersion=2.10, sbtVersion=0.13) (/home/me/Projects/app/app-web/project/plugins.sbt#L7-8)
[warn] +- default:app-web-build:0.1-SNAPSHOT (scalaVersion=2.10, sbtVersion=0.13)
sbt.ResolveException: unresolved dependency: me.my.app#sbt-plugin;0.1.0: not found
at sbt.IvyActions$.sbt$IvyActions$$resolve(IvyActions.scala:313)
[error] (*:update) sbt.ResolveException: unresolved dependency: me.my.app#sbt-plugin;0.1.0: not found
ご覧のとおり、プラグインのダウンロードに使用される URL は、プラグインが公開されている URL とは異なります。(publishLocal
私のプラグインは同じパスで公開されていますが、正常に解決されています。
- ローカル :
me.my.app/sbt-plugin/scala_2.10/sbt_0.13/0.1.0/jars/sbt-plugin.jar
- アップロード :
me.my.app/sbt-plugin/scala_2.10/sbt_0.13/0.1.0/jars/sbt-plugin.jar
- ダウンラッド:
me/my/app/sbt-plugin_2.10_0.13/0.1.0/sbt-plugin-0.1.0.pom
publishMavenStyle := false
私は、またはなしで、およびありでResolver.bintrayRepo
試しましResolver.bintrayIvyRepo
たが、成功しませんでした。
私は何かが欠けているでしょうが、私は少し失われたと感じていることを認めなければなりません. では、アップロードパスとダウンロードパスを揃えるために不足している構成は何ですか?
詳細 :
publishMavenStyle := false
-> me.my.app/sbt-plugin/scala_2.10/sbt_0.13/0.1.0/jars/sbt-plugin.jarpublishMavenStyle := true
-> me.my.app/sbt-plugin/scala_2.10/sbt_0.13/0.1.0/jars/sbt-plugin.jarResolver.bintrayRepo
->私/私の/アプリ/sbt-plugin_2.10_0.13/0.1.0/sbt-plugin-0.1.0.pomResolver.bintrayIvyRepo
-> me.my.app/sbt-plugin/scala_2.10/sbt_0.13/0.1.0/ivys/ivy.xml