Java 带有Gradle和Kotlin的JOOQ不生成文件
在我的Java 带有Gradle和Kotlin的JOOQ不生成文件,java,jpa,gradle,kotlin,jooq,Java,Jpa,Gradle,Kotlin,Jooq,在我的build.gradle.kts中有以下gradle任务。它应该从我的JPA实体生成文件。但是,在运行此任务时,如果成功,则不会生成任何文件或目录 task(name = "generateJooq") { doLast { val configuration = Configuration().apply { generator = Generator().apply { database = Databa
build.gradle.kts
中有以下gradle任务。它应该从我的JPA实体生成文件。但是,在运行此任务时,如果成功,则不会生成任何文件或目录
task(name = "generateJooq") {
doLast {
val configuration = Configuration().apply {
generator = Generator().apply {
database = Database().apply {
name = "org.jooq.util.jpa.JPADatabase"
properties = listOf(Property().apply {
key = "packages"
value = "com.example.sample"
})
}
target = Target().apply {
packageName = "com.example.jooq"
directory = "src/generated/java"
}
}
}
GenerationTool.generate(configuration)
}
}
这是生活在packagecom.example.sample
下的我的实体。注意,我用Java编写了这个实体
@Entity
public class Book {
@Id
private String id;
@Column
private String title;
}
有以下日志
./gradlew clean generateJooq
BUILD SUCCESSFUL in 1s
2 actionable tasks: 2 executed
我猜你的
书
类在src/main/java
中,对吗
现在您希望该类可用于JOOQ
对吗?在编译src/main/java
之前定义了Gradle buildscript类加载器(加载Gradle任务),这有点鸡毛蒜皮的问题
您需要将自定义类加载器传递给JOOQ
(例如URLClassloader)<然后,code>JOOQ可以使用类加载器来加载类(希望JOOQ
API支持这一点)。您可以使用sourceset.main.runtimeClasspath
创建URL
的数组
我看到GenerationTool
有一个setClassLoader(..)
方法。我猜你会这么说
有关类似的解决方案,请参见(使用反射
而不是JOOQ
,但基本相同)。可能就是这样。可能类似于