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
NoClassDefError
happens, 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>