已尝试使用 Gradle 中的 SQL Server 配置使用 Jooq 生成代码,但无法这样做。但同样的事情在 h2DB 上运行良好。 谁能向我解释一下如何在 gradle 中使用 jooq 为 mssql 服务器生成类。
**Here is my gradle code:**
import org.jooq.util.jaxb.*
import org.jooq.util.*
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.h2database:h2:1.4.186'
classpath 'org.jooq:jooq-codegen:3.9.1'
classpath 'com.microsoft.sqlserver:sqljdbc4:4.0'
classpath "io.ratpack:ratpack-gradle:0.9.7-SNAPSHOT"
classpath 'com.github.jengelman.gradle.plugins:shadow:1.0.2'
}
}
plugins {
id 'io.ratpack.ratpack-java' version '1.3.3'
}
repositories {
jcenter()
}
dependencies {
compile ratpack.dependency('hikari')
compile 'com.h2database:h2:1.4.186'
compile 'org.jooq:jooq:3.9.1'
compile 'com.microsoft.sqlserver:sqljdbc4:4.0'
compile "io.ratpack:ratpack-gradle:0.9.7-SNAPSHOT"
compile 'com.github.jengelman.gradle.plugins:shadow:1.0.2'
}
mainClassName = 'App'
task jooqCodegen {
doLast {
String init = "<directory>/init.sql"
Configuration configuration = new Configuration()
.withJdbc(new Jdbc()
.withDriver("com.microsoft.sqlserver.jdbc.SQLServerDriver")
.withUrl("jdbc:sqlserver://<server address>;DatabaseName=JOOQ; INIT=RUNSCRIPT FROM '$init'")
.withUser("****")
.withPassword("****")
)
.withGenerator(new Generator()
.withDatabase(new Database()
.withName("org.jooq.util.sqlserver.SQLServerDatabase")
.withIncludes(".*")
.withExcludes("")
.withInputSchema("dbo")
)
.withTarget(new Target()
.withDirectory("$projectDir/src/main/java")
.withPackageName("jooq")))
GenerationTool.generate(configuration)
}
}
**Note :** Added one create table statement in init.sql file
最佳答案
jOOQ开源版不支持SQL Server as shown here 。为了将jOOQ专业版与gradle一起使用,您需要进行以下修改:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'org.jooq.pro:jooq-codegen:3.9.1'
// ...
}
}
// ...
dependencies {
compile 'org.jooq.pro:jooq:3.9.1'
// ...
}
请注意,Maven groupId
已更改。这些是不同 jOOQ 版本的所有可用 groupId
值:
org.jooq
用于开源版本(可从 Maven Central 获取)org.jooq.pro
用于商业版本(Maven Central 不提供)org.jooq.pro-java-6
用于支持 Java 6 的商业版本(Maven Central 不提供)org.jooq.Trial
用于免费试用版(Maven Central 不提供)
关于java - 尝试使用 SQL Server 使用 Jooq 生成代码,但无法这样做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41891304/