У меня возникли проблемы с публикацией/использованием пользовательского плагина sbt из bintray. Я могу опубликовать sbt-plugin
на bintray, но когда я пытаюсь использовать его, резольвер использует другой путь.Публикация и разрешение плагина Sbt на bintray, разные пути (плагин sbt-bintray)
Я следовал official guide, но адаптировать его к последней версии плагина, у меня есть этот 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-плагин/scala_2.10/sbt_0.13/0.1.0/банки/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 используется для загрузки плагина не то же самое, как тот, где был опубликован плагин. (С publishLocal
мой плагин опубликован в том же пути, но решены успешно
- Local:.
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
- Downlad:
me/my/app/sbt-plugin_2.10_0.13/0.1.0/sbt-plugin-0.1.0.pom
Я попытался с или без publishMavenStyle := false
и Resolver.bintrayRepo
и Resolver.bintrayIvyRepo
, но безуспешно.
Мне что-то не хватает, но я должен признать, что чувствую себя немного потерянным. Итак, какова недостающая конфигурация, которая должна выровнять upload и скачать дорожки?
Детали:
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-плагин-0.1.0.pomResolver.bintrayIvyRepo
->me.my.app/sbt-plugin/scala_2.10 /sbt_0.13/0.1.0/ivys/ivy.xml