我需要列出所有的sbt依赖项,以便检查是否已存在debian包(I also notice that there is a DEB package但似乎没有打包外部依赖项。)
目前,我通过以下步骤编写了sbt依赖项列表:
我创建了一个简单的脚本,它提取〜/ .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
您认为列出所有sbt依赖项的正确方法是什么?
答案 0 :(得分:10)
有一个很好的sbt plugin
:
https://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依赖项插件安装为全局插件。
首先通过键入以下内容导航到正确的目录
命令:cd ~/.sbt
这将带您进入Sbt目录。从那里您将需要
导航到0.13目录。键入ls
命令将显示是否
目录中存在0.13和/或1.0
通过键入以下内容导航到0.13:cd 0.13
,然后创建一个名为
输入以下内容即可插入插件:mkdir plugins
通过键入以下内容导航到新目录:cd plugins
,然后继续
通过键入以下内容来创建一个名为“ plugins.sbt”的文件:touch plugins.sbt
通过您首选的编辑器编辑plugins.sbt文件
将以下行添加到文件中:
addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.10.0-RC1")
保存更改
对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
important 应在项目目录中对其进行测试,并通过运行该命令将生成依赖关系图。您也可以在每次要生成依赖图时运行它