JOOQ sbt 0.3.16到1.2.8迁移
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JOOQ sbt 0.3.16到1.2.8迁移相关的知识,希望对你有一定的参考价值。
如何将JOOQ构建和配置从sbt 0.3.16迁移到sbt 1.2.8
JOOQ在0.3.16中的构建定义如下。
val generateJOOQ = taskKey[Seq[File]]("Generate JooQ classes")
val generateJOOQTask = (baseDirectory, dependencyClasspath in Compile, runner in Compile, streams) map { (base, cp, r, s) =>
toError (r.run(
"org.jooq.util.GenerationTool",
cp.files,
Array("conf/openDoor.xml"),
s.log))
((base / "app" / "jooqSteps") ** "*.scala").get
}
generateJOOQ <<= generateJOOQTask
和运行sbt(1.2.8)时的结果:
build.sbt:70: error: value map is not a member of (sbt.SettingKey[java.io.File], sbt.TaskKey[sbt.Keys.Classpath], sbt.TaskKey[sbt.ScalaRun], sbt.TaskKey[sbt.Keys
.TaskStreams])
val generateJOOQTask = (baseDirectory, dependencyClasspath in Compile, runner in Compile, streams) map { (base, cp, r, s) =>
^
C:workPlayanchoruild.sbt:71: error: not found: value toError
toError (r.run(
^
[error] sbt.compiler.EvalException: Type error in expression
谢谢您的帮助
答案
根据migrating from tuple enrichments指南和dropped deprecations release notes我们可以迁移generateJOOQTask
如下
val generateJOOQ = taskKey[Seq[File]]("Generate JooQ classes")
generateJOOQ := {
val base = baseDirectory.value
val cp = (dependencyClasspath in Compile).value
val r = (runner in Compile).value
val s = streams.value
r.run(
"org.jooq.util.GenerationTool",
cp.files,
Array("conf/openDoor.xml"),
s.log
).failed foreach (sys error _.getMessage)
((base / "app" / "jooqSteps") ** "*.scala").get
}
以上是关于JOOQ sbt 0.3.16到1.2.8迁移的主要内容,如果未能解决你的问题,请参考以下文章
使用 sbt.version 1.2.8 发布到 nexus 的 Sbt 插件无法由使用 sbt.version >1.2.8 的 sbt 项目解决
jooq + scala 代码生成:对象 AbstractKeys 中的方法 createIndex 无法在对象 org.jooq.impl.AbstractKeys 中访问