Spring boot Flyway Jooq Code gen maven 插件顺序
Posted
技术标签:
【中文标题】Spring boot Flyway Jooq Code gen maven 插件顺序【英文标题】:Spring boot Flyway Jooq Code gen maven plugin order 【发布时间】:2020-08-01 12:20:37 【问题描述】:如何强制 flyway:migrate 始终在 jooq:generate-sources 之前执行? 我正在使用带有 Spring Boot 的 Maven 包装器。
<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>
【问题讨论】:
【参考方案1】:当您在src/main/java
中生成代码时,Maven 中的一切都开始崩溃。最好保持默认生成到target/...
,或者,如果您想签入生成的源,请为 Flyway 迁移和 jOOQ 代码生成创建单独的 Maven 项目
【讨论】:
【参考方案2】:您还必须将executions
块添加到flyway-maven-plugin
部分,以使flyway 在generate-sources
步骤下执行迁移:
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>6.3.3</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>migrate</goal>
</goals>
</execution>
</executions>
</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>
</plugins>
【讨论】:
它工作了,有点。当我输入spring-boot:运行它时:1.迁移架构2.使用jooq生成的类,3.编译并启动,但在第3步它尝试再次迁移并失败并出现以下错误:“消息:错误:关系”foo “已经存在”不知道为什么,flyway_schema_history 存在并且有记录。 您在应用中使用什么版本的 flyway?以上是关于Spring boot Flyway Jooq Code gen maven 插件顺序的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot 2.3.9.Release新版本发布,Spring Boot 2.3.9新版本发布