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

2022-09-01 13:11:44

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


答案 1

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

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

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

编辑:

下面是我的一个项目的一个示例,其中我定义了一个 SBT 任务,该任务将依赖项复制到目标文件夹中。可以将此代码放入项目定义文件中。项目定义文件中应包含类似内容(有关详细信息,请参阅 www.scala-sbt.org):project/Build.scala

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

object MyProjectBuild extends Build {

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

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)

答案 2

我从 http://mvnrepository.com/

例如,你想找到,你可以从搜索框中搜索,然后选择一个你喜欢的版本,然后你会看到标签:MySQL Java Connectorsbt

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

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

在 linux 中是~/.ivy2/cache

祝你好运


推荐