sbt把下载的jar放在哪里?我试图让sbt下载所有依赖项并将它们放在lib /目录下,这样我就可以将它们与ScalaIDE一起使用,但是在我成功运行sbt compile
之后我就不知道在哪里可以找到这些已下载.jars
答案 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)
例如,您想要找到MySQL Java Connector
,您可以在搜索框中搜索,然后选择您喜欢的版本,然后您会看到sbt
标记:
libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.34"
如果你想找到下载的jar,在windows中是C:\Users\<userName>\.ivy2\cache
是~/.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 /}
...