2016-10-20 2 views
0

У меня возникли проблемы с публикацией/использованием пользовательского плагина 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.jar
  • publishMavenStyle := true ->me.my.app/sbt-plugin/scala_2.10/sbt_0.13/0.1.0/jars/sbt-plugin.jar

  • Resolver.bintrayRepo ->меня/мой/приложение/SBT-plugin_2.10_0.13/0.1.0/SBT-плагин-0.1.0.pom

  • Resolver.bintrayIvyRepo ->me.my.app/sbt-plugin/scala_2.10 /sbt_0.13/0.1.0/ivys/ivy.xml

ответ

0

Публикация часть была в порядке. Единственная проблема была на стороне резолюции.

мне пришлось добавить пользовательский распознаватель с явными ivyStylePatterns распознаватель в my-project\build.sbt:

resolvers += Resolver.url("me @ bintray", url("https://dl.bintray.com/{my-bintray-account}/{my-bintray-generic-repo}"))(Resolver.ivyStylePatterns) 
Смежные вопросы