gpt4 book ai didi

scala - 如何通过 SBT 将本地缓存的 jar 复制到文件夹?

转载 作者:行者123 更新时间:2023-12-04 12:49:50 29 4
gpt4 key购买 nike

我想将 libraryDependencies 中指定的所有 jar 复制到任务中的文件夹。

例如,我为项目定义了以下依赖项。

libraryDependencies ++= Seq(
"org.neo4j" % "neo4j" % neo4j_version,
"org.scala-lang.modules" %% "scala-java8-compat" % "0.8.0",
"org.scala-lang" %% "scala-pickling" % "0.9.1",
"org.neo4j.test" % "neo4j-harness" % neo4j_version % "test",
"org.neo4j.driver" % "neo4j-java-driver" % "1.0.4" % "test"
)

现在我想创建一个任务,这样每次运行任务时,它都会将依赖项中的 jar 复制到一个文件夹中。

我知道我可以手动指定要复制的 jars 的绝对路径。我想要一个可以自动导出 jar 路径的任务。所以后面我添加新的依赖时,就不需要再去.ivy缓存中找路径了。

谢谢。

最佳答案

您可以使用 managedClasspath 来解决这个问题。请参阅下面的示例。

val copyJarsTask = TaskKey[Unit]("copy-jars", "Copys jars")

libraryDependencies ++= Seq(
"org.scala-lang" %% "scala-pickling" % "0.9.1"
)

copyJarsTask := {
val folder = new File("my-jars")

(managedClasspath in Compile).value.files.foreach { f =>
IO.copyFile(f, folder / f.getName)
}
}

关于scala - 如何通过 SBT 将本地缓存的 jar 复制到文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40681423/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com