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

时间:2014-11-23 21:35:03

标签: java scala sbt

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

3 个答案:

答案 0 :(得分:20)

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

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

如果您使用的是Windows,则通常为c:\Users\<username>\.ivy2\cache

编辑:

这是我的一个项目中的一个例子, 我在其中定义了一个将依赖项复制到目标文件夹的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)

答案 1 :(得分:4)

我从http://mvnrepository.com/

中找到sbt依赖项

例如,您想要找到MySQL Java Connector,您可以在搜索框中搜索,然后选择您喜欢的版本,然后您会看到sbt标记:

libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.34"

如果你想找到下载的jar,在windows中是C:\Users\<userName>\.ivy2\cache

linux中的

~/.ivy2/cache

祝你好运

答案 2 :(得分:1)

以下参考资料对于sbt。

非常有用

https://www.scala-sbt.org/1.x/docs/Launcher-Configuration.html

你可以找到sbt.ivy.home是参数,默认是$ {user.home} /.vyvy2 /.

  

...

     

[repositories] local typesafe-ivy-releases:   http://repo.typesafe.com/typesafe/ivy-releases/,   [组织] / [模块] / [修改] / [类型] S /工件。[EXT],   bootOnly maven-central sonatype-snapshots:   https://oss.sonatype.org/content/repositories/snapshots

     

[boot]目录:   $ {sbt.boot.directory - $ {sbt.global.base - $ {的user.home} / SBT} /引导/}

     

[ivy] ivy-home:$ {sbt.ivy.home - $ {user.home} /.ivy2 /}

     

...