如何在依赖 URL 中下载没有 SBT 版本的 sbt 插件依赖?

Posted

技术标签:

【中文标题】如何在依赖 URL 中下载没有 SBT 版本的 sbt 插件依赖?【英文标题】:How to download sbt plugin depdendency without SBT version in the dependency URL? 【发布时间】:2014-06-30 02:37:03 【问题描述】:

我正在尝试使用我在私有 mavenrepository 中发布的 sbt 插件

插件配置如下:

    val buildSettings = Defaults.defaultSettings ++
                      Seq (organization  := buildOrganization,
                           scalaVersion  := buildScalaVersion,
                           version       := buildVersion,
                           publishMavenStyle := true,
                           pomIncludeRepository :=  _ => true ,
                           scalacOptions ++= Seq("-deprecation", "-unchecked", "-encoding", "utf8"),
                           publishTo     := Some("External" at "http://xx.yy.net/archiva/repository/external"),
                           credentials += Credentials(Path.userHome / ".sbt" / ".credentials")
                          )

使用“sbt publish”,插件部署在这里: http://xx.yy.net/archiva/repository/external/templemore/sbt-cucumber-parent_2.10/0.8.0/sbt-cucumber-parent_2.10-0.8.0.pom

然后我从另一个 SBT 应用程序中使用我的插件。在我的 plugins.sbt 中,我添加:

addSbtPlugin("templemore" %% "sbt-cucumber-plugin" % "0.8.0")

但它失败了,因为 SBT(或 Ivy)正在查看一个带有 SBT 版本插件(0.13)的 URL:

tried
[warn]   http://xx.yy.net/archiva/repository/external/templemore/sbt-cucumber-plugin_2.10_0.13/0.8.0/sbt-cucumber-plugin-0.8.0.pom

1) 如何防止 SBT 在依赖 URL 中添加其版本?

2) 或者,如果 1 不可能,我如何设置我的 SBT 插件配置以使用正确的 URL 模式将工件部署到档案?

谢谢:)

【问题讨论】:

您的build.sbt 中有sbtPlugin := true 吗? 我正在尝试部署此工件:github.com/skipoleschris/xsbt-cucumber-plugin/blob/master/… 确实有一个“sbtPlugin := true”但仅适用于子模块,也许这是问题 【参考方案1】:

根据您的评论,您必须使用sbt-cucumber-plugin/publish 发布它,这将在父项目的子项目sbt-cucumber-plugin 中执行发布。

【讨论】:

以上是关于如何在依赖 URL 中下载没有 SBT 版本的 sbt 插件依赖?的主要内容,如果未能解决你的问题,请参考以下文章

从 URL 下载/获取文件的 SBT 任务

SBT 与 Maven Central - 在工件 url 中摆脱 Scala 版本

如何在没有 sbt 的情况下运行 sbt 管理的应用程序项目?

在 sbt 中添加 jar URL 作为依赖项的简单方法

从 SBT 任务中下载编译和发布

如何让 Eclipse 识别来自 SBT 的依赖项