我將 JOOQ 與 PostgreSQL 資料庫一起使用。目前,JOOQ 生成的所有代碼都在同一個 Maven 專案中。
我想知道是否可以在兩個單獨的 Maven 模塊中分離 JOOQ 代碼生成:
- 在服務器模塊中:JOOQ 記錄和 DAO 生成
- 在一個通用模塊中:僅生成 POJO。
目標是在服務器和客戶端模塊之間共享公共模塊。
我的生成器中目標的配置如下:
<target>
<packageName>my.package</packageName>
<directory>target/generated-sources/gen-jooq/</directory>
</target>
uj5u.com熱心網友回復:
有幾種方法:
GeneratorStrategy僅使用
您可以實作一個自定義GeneratorStrategy,將 DAO 和/或 POJO 型別的輸出路徑完全重寫為您知道恰好是不同的 maven 模塊的東西。
使用多個代碼生成運行
與您希望干凈地分離代碼生成輸出的許多其他場景一樣(例如,在這個問題中:jOOQ code generation for multiple databases with different schemas),您可以像這樣指定多個代碼生成執行:
<plugin>
<groupId>org.jooq</groupId>
<artifactId>jooq-codegen-maven</artifactId>
<executions>
<execution>
<id>exec-1</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>...</configuration>
</execution>
<execution>
<id>exec-2</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>...</configuration>
</execution>
</executions>
</plugin>
這兩個執行可以具有共享和獨立的配置,包括<target>. 生成 DAO 型別的生成也將始終生成 POJO 型別,因此您可能必須從代碼生成輸出中洗掉這些型別,例如在代碼生成后立即洗掉目錄。
如果需要,您仍然可以使用 aGeneratorStrategy來指定不同的包
使用一些第三方打包工具
僅僅因為 jOOQ 的代碼生成器在單個目錄層次結構中生成所有內容并不意味著您必須保持這種方式。或者其他類似的maven-shade-plugin插件可以用來在你的代碼生成之后分割你的代碼,甚至在它被編譯之后。我不會在這里列出所有可能的選項,但這肯定會給你一個想法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/504819.html
標籤:爪哇 弹簧靴 行家 乔克 jooq-codegen-maven
