在哪里可以找到下载的 sbt 库?

本教程将介绍在哪里可以找到下载的 sbt 库?的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

在哪里可以找到下载的 sbt 库? 教程 第1张

问题描述

sbt把下载的jar放在哪里?我试图让 sbt 下载所有依赖项并将它们放在 lib/目录下,以便我可以将它们与 ScalaIDE 一起使用,但是在我成功运行 sbt compile 之后,我不知道在哪里可以找到这些下载的.jars

推荐答案

所有新的 SBT 版本(0.7.x 之后)默认将下载的 JARS 放入 .ivy2 主目录中的目录.

如果您使用的是 Linux,这通常是 /home//.ivy2/cache.

如果您使用的是 Windows,这通常是 c:Users<username>.ivy2cache.

这是我的一个项目中的一个示例,我在其中定义了一个将依赖项复制到目标文件夹中的 SBT 任务.您可以将此代码放入您的 project/Build.scala 项目定义文件中.您的项目定义文件中应该有类似的内容(更多信息请访问 www.scala-sbt.org):

import sbt._
import Keys._
import Process._

object MyProjectBuild extends Build {

以下代码将所有库复制到 deploy/libz 子目录,通过定义一个 deploy 任务来捕获您的程序工件及其所有类路径依赖项:

val deployKey = TaskKey[Unit](
  "deploy",
  "Deploys the project in the `deploy` subdirectory."
)

val deployTask = deployKey <<= (artifactPath in (Compile, packageBin), dependencyClasspath in Compile) map {
  (artifact, classpath) =>
  val deploydir = new File("deploy")
  val libzdir = new File("deploy%slib".format(File.separator))

  // clean old subdirectory
  deploydir.delete()

  // create subdirectory structure
  deploydir.mkdir()
  libzdir.mkdir()

  // copy deps and artifacts
  val fullcp = classpath.map(_.data) :+ artifact
  def lastName(file: File) = if (file.isFile) file.getName else file.getParentFile.getParentFile.getParentFile.getName
  for (file <- fullcp) {
 println("Copying: " + file + "; lastName: " + lastName(file))
 if (file.isFile) IO.copyFile(file, (libzdir / lastName(file)).asFile);
 else IO.copyDirectory(file, (libzdir / lastName(file)))
  }
} dependsOn (packageBin in Compile)

好了关于在哪里可以找到下载的 sbt 库?的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。