Я пытаюсь использовать JOOQ с vertx с последней версией 4.0.0.Я хочу создать свой Daos и таблицу через Gradle.Ниже приведен мой код build.gradle
buildscript {
ext {
vertx_jooq_version = '4.0.0'
postgresql_version = '42.2.2'
}
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
classpath "io.github.jklingsporn:vertx-jooq-generate:$vertx_jooq_version"
classpath "org.postgresql:postgresql:$postgresql_version"
}
}
import groovy.xml.MarkupBuilder
import org.jooq.util.GenerationTool
import javax.xml.bind.JAXB
group 'your group id'
version 'your project version'
apply plugin: 'java'
dependencies {
compile "io.github.jklingsporn:vertx-jooq-classic:$vertx_jooq_version"
testCompile group: 'junit', name: 'junit', version: '4.12'
}
task jooqGenerate {
doLast() {
def writer = new StringWriter()
new MarkupBuilder(writer)
.configuration('xmlns': 'http://www.jooq.org/xsd/jooq-codegen-3.10.0.xsd') {
jdbc {
driver('org.postgresql.Driver')
url('jdbc:postgresql://IP:PORT/DATABASE')
user('YOUR_USER')
password('YOUR_PASSWORD')
}
generator {
name('io.github.jklingsporn.vertx.jooq.generate.classic.ClassicJDBCVertxGenerator')
database {
name('org.jooq.meta.postgres.PostgresDatabase')
include('.*')
excludes('schema_version')
inputSchema('public')
includeTables(true)
includeRoutines(true)
includePackages(false)
includeUDTs(true)
includeSequences(true)
}
generate([:]) {
deprecated(false)
records(false)
interfaces(true)
fluentSetters(true)
pojos(true)
daos(true)
}
target() {
packageName('io.one.sys.db')
directory("$projectDir/src/main/java")
}
strategy {
name('io.github.jklingsporn.vertx.jooq.generate.VertxGeneratorStrategy')
}
}
}
GenerationTool.generate(
JAXB.unmarshal(new StringReader(writer.toString()), org.jooq.meta.jaxb.Configuration.class)
)
}
}
, который взят из ссылки на github https://github.com/jklingsporn/vertx-jooq/tree/master/vertx-jooq-classic-jdbc
, но когда я запускаю команду ./gradlew jooqGenerate
для генерации кода, он выдает ошибку: The <generator/> tag is mandatory. For details, see http://www.jooq.org/xsd/jooq-codegen-3.11.0.xsd
Я проверил org.jooq.codegen.GenerationTool
в библиотеке кодов JOOQ.Ниже приведен код
org.jooq.meta.jaxb.Generator g = configuration.getGenerator();
if (g == null)
throw new GeneratorException("The <generator/> tag is mandatory. For details, see " + Constants.NS_CODEGEN);
ссылка: https://github.com/jOOQ/jOOQ/blob/master/jOOQ-codegen/src/main/java/org/jooq/codegen/GenerationTool.java
Похоже, что проблема в configuration.getGenerator ();
И следующая ссылка org.jooq.meta.jaxb.Generator file https://github.com/jOOQ/jOOQ/blob/master/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/Generator.java
Я вижу следующие методы
public Generator withGenerate(Generate value) {
setGenerate(value);
return this;
}
public void setGenerate(Generate value) {
this.generate = value;
}
Я не могу больше копать, кто должен вызывать метод withGenerate () для создания объекта Generator.
Может кто-нибудь сказать, пожалуйста, что здесь не так или есть проблема с библиотекой jklingsporn