bintray 上的 Sbt 插件发布和解析,不同的路径(sbt-bintray 插件)
Sbt plugin publication and resolution on bintray, different paths (sbt-bintray plugin)
我在 publish/use 来自 bintray 的自定义 sbt 插件方面遇到了一些麻烦。我能
在 bintray 上发布 sbt-plugin
但是当我尝试使用它时解析器使用
另一条路。
我已经按照 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-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用于下载插件的是不一样的
一个插件已发布的地方。 (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
但没有成功。
我会错过一些东西,但我不得不承认我有点失落。那么应该对齐 upload 和 download 路径的缺失配置是什么?
详情:
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
-> me/my/app/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
发布部分还可以。唯一的问题是在分辨率方面。
我必须添加一个带有显式 ivyStylePatterns 解析器的自定义解析器到 my-project\build.sbt
:
resolvers += Resolver.url("me @ bintray", url("https://dl.bintray.com/{my-bintray-account}/{my-bintray-generic-repo}"))(Resolver.ivyStylePatterns)
我在 publish/use 来自 bintray 的自定义 sbt 插件方面遇到了一些麻烦。我能
在 bintray 上发布 sbt-plugin
但是当我尝试使用它时解析器使用
另一条路。
我已经按照 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-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用于下载插件的是不一样的
一个插件已发布的地方。 (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
但没有成功。
我会错过一些东西,但我不得不承认我有点失落。那么应该对齐 upload 和 download 路径的缺失配置是什么?
详情:
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
-> me/my/app/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
发布部分还可以。唯一的问题是在分辨率方面。
我必须添加一个带有显式 ivyStylePatterns 解析器的自定义解析器到 my-project\build.sbt
:
resolvers += Resolver.url("me @ bintray", url("https://dl.bintray.com/{my-bintray-account}/{my-bintray-generic-repo}"))(Resolver.ivyStylePatterns)