簡體   English   中英

與Gradle和Kotlin的JOOQ不生成文件

[英]JOOQ with Gradle and Kotlin do not generate files

我在下面的任務的gradle build.gradle.kts 它應該從我的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)
    }
}

這是我的實體生活在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

我猜你的Book類在src/main/java是否正確?

現在你希望JOOQ可以使用該課程嗎? 在編譯src/main/java之前定義了Gradle buildscript類加載器(加載gradle任務)的雞或蛋問題。

您需要將自定義類加載器傳遞給JOOQ (例如URLClassloader)。 然后JOOQ可以使用類加載器來加載類(希望JOOQ API支持這個)。 您可以使用sourceSets.main.runtimeClasspath創建URL數組。

我看到GenerationTool 在這里有一個setClassLoader(..)方法。 我猜你會打電話給我

請參閱此處獲取類似的解決方案(使用Reflections而不是JOOQ但基本相同)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM