0

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.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-plugin-0.1.0.pom

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

1 に答える 1

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)
于 2016-10-20T12:25:27.627 に答える