where to find downloaded library of sbt?

java, sbt, scala

Solution

All new SBT versions (after `0.7.x`) by default put the downloaded JARS into the `.ivy2` directory in your home directory.

If you are using Linux, this is usually `/home/<username>/.ivy2/cache`.

If you are using Windows, this is usually `c:\Users\<username>\.ivy2\cache`.

EDIT:

Here's an example from one of my projects, in which I define an SBT task that copies the dependencies into the target folder. You can place this code into your `project/Build.scala` project definition file. You should have something like this in your project definition file (more info at www.scala-sbt.org):

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

object MyProjectBuild extends Build {

The following code copies all your libraries to a `deploy/libz` subdirectory, by defining a `deploy` task that captures your program artifact and all its classpath dependencies:

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)

Problem

Where does sbt put the downloaded jar? I'm trying to ask sbt to download all dependencies and put them under lib/ directory so I can use them with the ScalaIDE, however after I ran `sbt compile` successfully I don't know where to find these downloaded .jars

Original source