apply plugin: 'java' apply plugin: 'jooq' apply plugin: 'flyway' buildscript { repositories { mavenLocal() mavenCentral() } dependencies { classpath 'com.h2database:h2:1.3.170' classpath 'com.github.ben-manes:gradle-flyway-plugin:0.6' classpath 'org.jooq:jooq-codegen-gradle:latest.integration' } } repositories { mavenCentral() } dependencies { compile 'org.jooq:jooq:3.1.0' compile 'com.google.guava:guava:14.0' compile 'com.google.inject:guice:3.0' testCompile 'com.h2database:h2:1.3.170' testCompile 'org.hamcrest:hamcrest-all:1.3' testCompile 'org.modelmapper:modelmapper:0.5.5' testCompile 'com.googlecode.flyway:flyway-core:2.1' testCompile dependencies.create('org.testng:testng:6.8') { exclude group: 'junit' } } test { useTestNG() } generateJooq.dependsOn(flywayMigrate) compileJava.dependsOn(generateJooq) flyway { databases { main { url = "jdbc:h2:${buildDir}/db/flyway" schemas = [ 'example' ] user = 'su' } } } generateJooq { outputs.upToDateWhen { !flywayMigrate.didWork } } jooq { jdbc { url "jdbc:h2:${buildDir}/db/flyway" driver 'org.h2.Driver' user 'su' } generator { database { name 'org.jooq.util.h2.H2Database' inputSchema 'example' includes '.*' } generate { deprecated false } target { packageName 'example.generated' } } }