Announcing a new jOOQ Gradle code generation plugin that supports the
Gradle Kotlin DSL [1]: https://github.com/bombinating/jooq-gradle-plugin
The plugin allows you to define the jOOQ codegen config within a
build.gradle.kts file and invoke it as a Gradle task.
(Note that the generated code is still Java; this plugin just makes it
easier to configure and invoke the jOOQ code generator from within a
build.gradle.kts script.)
To use the plugin, first apply it in your build.gradle.kts script:
plugins {
id("dev.bombinating.jooq-codegen") version "1.3.0"
}
Then, create a variable for the directory the code will be generated into
and add this directory to the source set:
val genDir = "$projectDir/generated/src/main/java"
sourceSets["main"].java {
srcDirs(genDir)
}
Next, specify the JDBC driver that jOOQ will need to introspect the DB in
the jooqRuntime dependency:
dependencies {
compile(group = "org.jooq", name = "jooq", version = "3.12.1")
jooqRuntime(group = "com.h2database", name = "h2", version = "1.4.199")
}
Finally, define the jOOQ code generation configuration:
jooq {
version = "3.12.2"
edition = JooqEdition.OpenSource
jdbc {
url = "jdbc:h2:./build/db/test_db;AUTO_SERVER=true"
username = "sa"
password = ""
}
generator {
database {
includes = ".*"
}
target {
directory = genDir
packageName = "dev.bombinating.db"
}
}
}
The task created by the extension above can be invoked as:
$ ./gradlew jooq
There is more documentation about the configuration in the README for the
project. There are working examples in the example repo [2].
If you have problems or questions, open a pull request or file an issue.
Thanks!
[1] https://docs.gradle.org/current/userguide/kotlin_dsl.html
[2] https://github.com/bombinating/jooq-gradle-plugin-example
--
You received this message because you are subscribed to the Google Groups "jOOQ
User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jooq-user/294e359d-f71d-4557-9f92-3387574cb175%40googlegroups.com.