在哪里可以找到下载的 sbt 库?
本教程将介绍在哪里可以找到下载的 sbt 库?的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。
问题描述
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 库?的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。