是否有一个sbt插件来获取像Gemfile中的依赖项?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否有一个sbt插件来获取像Gemfile中的依赖项?相关的知识,希望对你有一定的参考价值。

使用rvm,dart的pub等依赖管理工具,您可以指定没有特定版本的依赖项。我将获得每个依赖项的最新版本,以产生基线工件。此工件在运行命令时包含每个依赖项及其最新版本。

有了sbt,我发现自己通过查看maven repo手动执行此步骤。他们的sbt插件是否已经这样做了?

例如,使用飞镖酒吧,你可以做到这一点。

pubspec.yaml

...
dependencies:
  args: '>=0.10.0 < 0.11.0'
  analyzer: '>=0.13.0 <0.14.0'
  barback: '>=0.11.1 <0.14.0'
...

pubspec.lock

packages:
  analyzer:
    description: analyzer
    source: hosted
    version: "0.13.6"
  args:
    description: args
    source: hosted
    version: "0.10.0+2"
  barback:
    description: barback
    source: hosted
    version: "0.12.0"
...
答案

建立在@ darko-cerdic的答案之上

您可以将latest指定为修订号。例如:

libraryDependencies += "org.apache.derby" % "derby" % "latest.release"

有关详细信息,请查看常春藤文档:

http://ant.apache.org/ivy/history/2.3.0/ivyfile/dependency.html#revision

如果需要,可以手动指定dependencyOverrides以强制使用特定的库版本:

dependencyOverrides ++= Seq( "org.apache.derby" % "derby" % "1.0.0")

请注意,在SBT 1中,dependencyOverrides被指定为Seq,而在先前版本中,它被指定为Set。

使用sbt-lock插件,您可以锁定所有依赖项的当前版本,以便CI系统可以使用一组稳定的依赖项。它根据当前解析的dependencyOverrides集合生成一组libraryDependencies。这给您的行为类似于Gemfile.lock。

https://github.com/tkawachi/sbt-lock

另一答案

您可以将latest指定为修订号。例如:

libraryDependencies += "org.apache.derby" % "derby" % "latest.release"

有关详细信息,请查看常春藤文档:

http://ant.apache.org/ivy/history/2.3.0/ivyfile/dependency.html#revision

以上是关于是否有一个sbt插件来获取像Gemfile中的依赖项?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过将 sbt-plugin 用作多项目构建中的依赖项来访问它的子项目?

sbt 插件和使用插件本身的多项目构建中的项目之间的相互依赖关系

访问 sbt 插件中的依赖(非子)项目

如何在 sbt 项目中使用 sbt 插件作为库依赖项?

Sbt 0.13 插件依赖和 scala-reflect.jar 版本冲突

sbt 中库和插件依赖项的不同导入处理策略