【问题标题】:In SBT, Is there a way of just downloading the top-level dependencies?在 SBT 中,有没有办法只下载顶级依赖项?
【发布时间】:2020-06-14 21:31:18
【问题描述】:

我有一个引入依赖项的 SBT 项目。我只想引入直接依赖项——而不是任何传递依赖项。我想找到引入的依赖项的文件名,以便我可以将其复制到某个地方。

例如给定一个具有以下内容的build.sbt 文件:

libraryDependencies += "org.eclipse.jetty" % "jetty-server" % "9.4.28.v20200408"

我想知道文件系统上的 jetty-server jar 在哪里。

我已尝试将以下内容添加到我的 build.sbt 文件中:

lazy val mytaskKey: TaskKey[Unit] = TaskKey[Unit]("mytask")

def mytask: Def.Setting[Task[Unit]] = mytaskKey := {
  val updateReport = update.value
  updateReport.allFiles foreach { f =>
    println(f)
  }
}

mytask

当我运行它时,我会得到一个完整的依赖列表:

/Users/dylan/.sbt/boot/scala-2.12.10/lib/scala-library.jar
/Users/dylan/.coursier/cache/v1/https/repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/9.4.28.v20200408/jetty-server-9.4.28.v20200408.jar
/Users/dylan/.sbt/boot/scala-2.12.10/lib/scala-compiler.jar
/Users/dylan/.sbt/boot/scala-2.12.10/lib/scala-reflect.jar
/Users/dylan/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/1.0.6/scala-xml_2.12-1.0.6.jar
/Users/dylan/.coursier/cache/v1/https/repo1.maven.org/maven2/jline/jline/2.14.6/jline-2.14.6.jar
/Users/dylan/.coursier/cache/v1/https/repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.12/jansi-1.12.jar

我不想要那个完整的列表 - 我只想要码头罐子。即

/Users/dylan/.coursier/cache/v1/https/repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/9.4.28.v20200408/jetty-server-9.4.28.v20200408.jar

我怎样才能得到这份清单?

【问题讨论】:

    标签: sbt


    【解决方案1】:

    是的,有intransitive()notTransitive() 分类器。它记录在here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-30
      • 2018-09-14
      • 2021-03-09
      • 2020-04-30
      • 1970-01-01
      • 2015-08-20
      • 2015-10-21
      • 1970-01-01
      相关资源
      最近更新 更多