Search code examples
spring-bootmavenmaven-pluginjooqflyway

Spring boot Flyway Jooq Code gen maven plugin order


How can I enforce flyway:migrate to be executed always before jooq:generate-sources? I am using maven wrapper with spring boot.

<plugin>
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-maven-plugin</artifactId>
            <version>6.3.3</version>
        </plugin>
        <plugin>
            <groupId>org.jooq</groupId>
            <artifactId>jooq-codegen-maven</artifactId>
            <version>3.13.1</version>
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <generator>
                    <database>
                        <name>org.jooq.meta.postgres.PostgresDatabase</name>
                        <inputSchema>public</inputSchema>
                    </database>
                    <target>
                        <packageName>bg.kotz.db</packageName>
                        <directory>src/main/java</directory>
                    </target>
                </generator>
            </configuration>
        </plugin>

Solution

  • When you generate code in src/main/java, all things start to break in Maven. Better keep it to the default of generating to target/..., or, if you want to check in generated sources, create separate Maven projects for Flyway migration and jOOQ code generation