Hey Lukas,thanks for the fixes in JOOQ 3.19.2 for Kotlin, that is all working now.One issue I'm having though is with the JOOQ plugin. I've just switched to this after previously manually creating a generator task in my Gradle file, and I have a couple of issues (both of which maybe my mistakes)The first issue (and the biggest) is that the generator task is not "depended upon" by the Kotlin compile task. So when I created my own generator task (called "generateJOOQ") that task was run as part of the Kotlin compilation.However, when I use the plugin I have to manually a dependency on the "jooqCodegen" from the Kotlin compile task, so I need to add this to my buildfile:tasks.compileKotlin {
dependsOn(tasks["jooqCodegen"])
}
The other issue is around sourceSets. I'm configuring the generator to create its sources in a directory called build/generated, I do this by setting the 'basedir' property of the task to the Gradle build directory and then the 'target' directory of the generator to 'generated/java. I then have a sourceSet declaration in the Gradle file that points at that directory.So something like this:jooq {
val output: Provider<Directory> = layout.buildDirectory.dir(".")
configuration {
basedir = "${output.get()}"
jdbc {
...}
generator {
name = "org.jooq.codegen.KotlinGenerator"
database {
...
}
target {
packageName = "com.knowledgespike.db"
directory = "generated/java"
isClean = true
}
}
}
}This works, the code is generated into the correct directory and everything complies but the plugin also creates it's own sourceSet at "./generated/java" is there anyway to prevent that?
--
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 jooq-user+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jooq-user/CAB4ELO4ys0aAZo1WJOWaJ0Zs9OEjQrTvVhewdhtghKMnZwiTMQ%40mail.gmail.com.
Thanks Lukas,I read the discussion about the plugin's dependencies and I think what you've done is correct, adding it to the docs would be good :)As to the sourceset, there are two things happening independently that I feel should be dependent: code is generated to a location and the sourceset is created.In my case I want my code to be generated to 'build/generated/src/java' and I want this to be my sourceset.Now, I can configure the plugin to put the generated code in 'build/generated/src/java' by setting the basedir and the target.directory properties. However it's not setting this to be the sourceset, it uses some default value. If I want a non-default directory to be the sourceset then I have to do that myself in the Gradle file (which I was doing previously)It seems that at the moment you create the sourceset location independently of the output location of the code generation. You always create the sourceSet at ',/generated/java', you seem to ignore the basedir property. Maybe it could be changed so that the sourceset location is the same as the location of the generated source?I haven't used multiple executions so I'm don't know your sourceset creation plays into that,
(BTW, the docs show an 'executions' element but I can't see that in the XSD, not sure if it should be in there)