簡體   English   中英

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不會自動刪除文件。

暫無
暫無

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

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