jOOQ Gradle 插件不更新生成的文件
jOOQ Gradle plugin does not update generated files
出于某种原因,我必须手动删除生成的文件夹和 运行 gradle 任务以获取更新的 POJO。这是我的设置、预期行为还是错误?我的设置如下:
jooq {
library(sourceSets.main) {
jdbc {
driver = 'com.mysql.jdbc.Driver'
url = 'jdbc:mysql://localhost:3306/library'
user = 'library'
password = '123'
schema = 'library'
}
generator {
name = 'org.jooq.util.DefaultGenerator'
strategy {
name = 'org.jooq.util.DefaultGeneratorStrategy'
}
database {
name = 'org.jooq.util.mysql.MySQLDatabase'
inputSchema = 'library'
}
generate {
daos = true
}
target {
packageName = 'com.example.library.db'
directory = 'src/main/java'
}
}
}
}
当前,当您生成文件时,它们会添加到 src/main/java
文件夹下。这不是一个好主意,因为您混合了源文件和生成的文件。最好添加一个单独的文件夹 src/main/generated
并按以下方式修改 build.gradle
:
def generatedDir = 'src/main/generated'
sourceSets {
main {
java {
srcDirs += [generatedDir]
}
}
}
clean.doLast {
project.file(generatedDir).deleteDir()
}
并更改:
target {
packageName = 'com.example.library.db'
directory = generatedDir
}
这样您就可以轻松管理生成的类。当 clean
任务为 运行 时,所有 类 将被自动删除。
您还需要定义 compileJava
和生成器任务之间的依赖关系。可以通过以下方式完成:
compileJava.dependsOn YOUR_GENERATOR_TASK_NAME
jOOQ不会自动删除文件。
出于某种原因,我必须手动删除生成的文件夹和 运行 gradle 任务以获取更新的 POJO。这是我的设置、预期行为还是错误?我的设置如下:
jooq {
library(sourceSets.main) {
jdbc {
driver = 'com.mysql.jdbc.Driver'
url = 'jdbc:mysql://localhost:3306/library'
user = 'library'
password = '123'
schema = 'library'
}
generator {
name = 'org.jooq.util.DefaultGenerator'
strategy {
name = 'org.jooq.util.DefaultGeneratorStrategy'
}
database {
name = 'org.jooq.util.mysql.MySQLDatabase'
inputSchema = 'library'
}
generate {
daos = true
}
target {
packageName = 'com.example.library.db'
directory = 'src/main/java'
}
}
}
}
当前,当您生成文件时,它们会添加到 src/main/java
文件夹下。这不是一个好主意,因为您混合了源文件和生成的文件。最好添加一个单独的文件夹 src/main/generated
并按以下方式修改 build.gradle
:
def generatedDir = 'src/main/generated'
sourceSets {
main {
java {
srcDirs += [generatedDir]
}
}
}
clean.doLast {
project.file(generatedDir).deleteDir()
}
并更改:
target {
packageName = 'com.example.library.db'
directory = generatedDir
}
这样您就可以轻松管理生成的类。当 clean
任务为 运行 时,所有 类 将被自动删除。
您还需要定义 compileJava
和生成器任务之间的依赖关系。可以通过以下方式完成:
compileJava.dependsOn YOUR_GENERATOR_TASK_NAME
jOOQ不会自动删除文件。