Maven plugin which can be integrated to any maven project Sample :
<plugin> <groupId>com.mytaxi</groupId> <artifactId>jooqgen-liquibase-postgres</artifactId> <configuration> <schema>bookingoptionsservice</schema> <-- schema name --> <packageName>com.mytaxi.bookingoptionsservice</packageName> <-- package to be created for generated classes --> <liquibaseChangeLogFile>${liquibase.changeLogFile}</liquibaseChangeLogFile> </configuration> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>jooqOverPostgresContainer</goal> </goals> </execution> </executions> </plugin> - Starts a postgress docker container.
- Applies liquibase changes over the container.
- Generates JOOQ classes for the source project connecting to postgres container.
If generated classes fail to compile,
- include
/target/generated-sources/jooq/folder to corresponding compiler plugin. - If kotlin-maven-plugin compilation failes, add
<configuration> <sourceDirs> <source>src/main/java</source> <source>target/generated-sources/jooq</source> </sourceDirs> </configuration> - If the
NoClassDefErrorhappens, this means the class files are missing. Add the following plugin
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <source>${project.build.directory}/generated-sources/jooq</source> </sources> </configuration> </execution> </executions> </plugin>