scala – SBT – 获取托管罐的路径

我想使用一些依赖项来在
Scala中执行代码生成.

例:

libraryDependencies += "org.jooq" % "jooq" % "2.4.0"

val jooqTask = jooq := {
  val classpath = "jooq-2.4.0.jar;jooq-meta-2.4.0.jar;jooq-codegen-2.4.0.jar;."
  val main = "org.jooq.util.GenerationTool"

  "java -classpath %s %s /project/jooq-configuration.xml".format(classpath, main) !
}

但是,我想获取依赖项的类路径,因此我实际上可以运行Java进程.

最佳答案 您可以像这样获取编译依赖项的类路径:

val jooqTask = jooq <<= managedClasspath in Compile map { cp =>
  val classpath = Path.makeString(cp.files))
  val main = "org.jooq.util.GenerationTool"

  "java -classpath %s %s /project/jooq-configuration.xml".format(classpath, main) !
}

请注意,类路径不包含“.” (但目前的目录).

点赞