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)
    }
}
这是生活在package
com.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
,但基本相同)。

可能就是这样。可能类似于