我如何列出所有sbt依赖项?

时间:2016-01-04 00:16:22

标签: scala sbt

我需要列出所有的sbt依赖项,以便检查是否已存在debian包(I also notice that there is a DEB package但似乎没有打包外部依赖项。)

目前,我通过以下步骤编写了sbt依赖项列表:

  1. Install sbt manually

  2. 我创建了一个简单的脚本,它提取〜/ .ivi2目录中的所有jar文件(不包括sbt jar)。这是执行的结果:

    Group;Artifact;Artifact+Version
    org.scala-lang;jline;jline-2.10.5
    org.scala-lang;scala-compiler;scala-compiler-2.10.5
    org.scala-lang;scala-library;scala-library-2.10.5
    org.scala-lang;scala-reflect;scala-reflect-2.10.5
    com.jcraft;jsch;jsch-0.1.46
    org.scalamacros;quasiquotes_2.10;quasiquotes_2.10-2.0.1
    jline;jline;jline-2.11
    com.thoughtworks.paranamer;paranamer;paranamer-2.6
    org.json4s;json4s-ast_2.10;json4s-ast_2.10-3.2.10
    org.json4s;json4s-core_2.10;json4s-core_2.10-3.2.10
    org.scala-lang.modules;scala-pickling_2.10;scala-pickling_2.10-0.10.0
    org.scala-tools.sbinary;sbinary_2.10;sbinary_2.10-0.4.2
    org.fusesource.jansi;jansi;jansi-1.4
    org.spire-math;json4s-support_2.10;json4s-support_2.10-0.6.0
    org.spire-math;jawn-parser_2.10;jawn-parser_2.10-0.6.0
    
  3. 您认为列出所有sbt依赖项的正确方法是什么?

3 个答案:

答案 0 :(得分:10)

有一个很好的sbt pluginhttps://github.com/jrudolph/sbt-dependency-graph

只需添加到~/.sbt/0.13/plugins/plugins.sbt

addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.8.0")

调用sbt dependencyTree你可以得到一个“ascii图”,如:

...
[info]   | +-org.apache.lucene:lucene-spatial:4.10.2
[info]   | | +-com.spatial4j:spatial4j:0.4.1
[info]   | | +-org.apache.lucene:lucene-core:4.10.2
[info]   | | +-org.apache.lucene:lucene-queries:4.10.2
[info]   | |   +-org.apache.lucene:lucene-core:4.10.2
[info]   | |
[info]   | +-org.apache.lucene:lucene-suggest:4.10.2
[info]   |   +-org.apache.lucene:lucene-analyzers-common:4.10.2
[info]   |   | +-org.apache.lucene:lucene-core:4.10.2
[info]   |   |
[info]   |   +-org.apache.lucene:lucene-core:4.10.2
[info]   |   +-org.apache.lucene:lucene-misc:4.10.2
[info]   |   | +-org.apache.lucene:lucene-core:4.10.2
[info]   |   |
[info]   |   +-org.apache.lucene:lucene-queries:4.10.2
[info]   |     +-org.apache.lucene:lucene-core:4.10.2
...

答案 1 :(得分:3)

如果不需要sbt-dependency-graph提供的依赖关系层次结构,则可能有用:

sbt 'show dependencyClasspathFiles'

答案 2 :(得分:0)

只需在此处添加如何安装 sbt-dependency-graph ,我认为与该问题有关。


重要提示:

答案仅仅是与 sbt-dependency-graph 相关的部分。您可能会找到here

的完整答案(sbt + scala + homebrew + plugin)

为了使用Snyk CLI测试Scala项目,您将需要安装Sbt依赖图插件。

为sbt 0.13安装Sbt依赖图插件 前提条件

确保已安装Scala。

确保已安装Sbt并运行了sbt。

注意:以下步骤将把Sbt依赖项插件安装为全局插件。

  1. 首先通过键入以下内容导航到正确的目录 命令:cd ~/.sbt

  2. 这将带您进入Sbt目录。从那里您将需要 导航到0.13目录。键入ls命令将显示是否 目录中存在0.13和/或1.0

  3. 通过键入以下内容导航到0.13:cd 0.13,然后创建一个名为 输入以下内容即可插入插件:mkdir plugins

  4. 通过键入以下内容导航到新目录:cd plugins,然后继续 通过键入以下内容来创建一个名为“ plugins.sbt”的文件:touch plugins.sbt

  5. 通过您首选的编辑器编辑plugins.sbt文件

  6. 将以下行添加到文件中:

addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.10.0-RC1")
  1. 保存更改

  2. 对1.0目录执行以下步骤。检查是否存在1.0 通过在sbt目录中输入ls

    • 如果sbt目录中不存在1.0,请在sbt目录中键入mkdir 1.0

    • 如果目录中存在1.0,请运行以下命令:cd ~/.sbt/1.0

    • 通过键入以下内容在该文件夹中创建一个名为“插件”的目录:mkdir plugins 通过键入以下命令,将现有的“ plugins.sbt”文件从0.13目录复制到当前的1.0目录:cp ../0.13/plugins/plugins.sbt ./plugins

    • 通过运行以下命令来验证插件是否已正确安装:sbt "-Dsbt.log.noformat=true" dependencyTree 应在项目目录中对其进行测试,并通过运行该命令将生成依赖关系图。您也可以在每次要生成依赖图时运行它