【问题标题】:SBT Resolver for plugin in local directory on HerokuHeroku 本地目录中插件的 SBT 解析器
【发布时间】:2016-01-16 14:35:07
【问题描述】:

我有一个内部 SBT 插件,它设置了我构建的许多常见方面。其中之一是我添加我的 Artifactory 凭据和解析器的设置。我通常在本地发布插件,以便我的构建可以解决它,然后从我的 Artifactory 存储库中提取剩余的依赖项。

为了部署到 Heroku,我计划将已发布的工件从我的 .ivy2 存储库复制到项目的子文件夹中。但是,虽然我可以使用 Resolver.file 和 Resolver.url 让它在本地工作,但一旦我推送到 Heroku,我就无法让它工作。我什至尝试将其作为非托管依赖项,但在 Heroku 中仍未解决。

有人知道在 Heroku 上实现这一目标的魔法吗?

我尝试在 project/plugins.sbt 中进行以下操作:

Resolver.url.("local-plugins", url(s"file///${baseDirectory.value}/plugins"))(Resolver.ivyStylePatterns)

Resolver.file("local-plugins", file("plugins")(Resolver.ivyStylePatterns)

unmanagedBase := baseDirectory.value / "lib"

【问题讨论】:

  • 您是否也将插件文件签入到 Git 中?
  • 您可能还需要仔细检查baseDirectory.value 的值。从project/ 目录来看,它可能不是你所期望的,因为 sbt 有这个项目中项目的概念。

标签: scala heroku sbt


【解决方案1】:

我推荐两种不同的方法:

  • 使用 sbt-heroku plugin 而不是使用 Git 进行部署。您可以通过这种方式使用本地依赖项。
  • 将您的插件部署到BinTray。它相当简单、免费且值得一试。

【讨论】:

    【解决方案2】:

    我今天又重温了一遍,结果如下:

    在 plugins.sbt 中:

    resolvers += Resolver.file("local-plugins", file("local-plugins"))(Resolver.ivyStylePatterns)
    

    我的项目还在工作文件夹中包含一个 local-plugins/ 目录,其中包含已发布的工件。

    【讨论】:

      猜你喜欢
      • 2013-01-19
      • 2013-03-02
      • 2014-12-27
      • 2020-01-05
      • 2018-08-23
      • 2015-07-02
      • 2018-07-20
      • 1970-01-01
      • 2016-05-24
      相关资源
      最近更新 更多