From c524c74289398ec5c26a592a19d21a273c9a1ce7 Mon Sep 17 00:00:00 2001 From: 0264408 Date: Thu, 10 Sep 2026 10:26:59 +0800 Subject: [PATCH] fix: cross-Boot-version autoconfiguration and CI-friendly version resolution - OrdoJdbcAutoConfiguration: use string-based @AutoConfigureAfter(name = ...) to reference both Spring Boot 3.x and 4.x DataSource/Flyway autoconfiguration classes, since Boot 4 relocated these to dedicated modules. - flatten-maven-plugin: switch flattenMode from resolveCiFriendliesOnly to defaults so inter-module dependency versions are fully resolved (not just the project's own ) when installed, fixing dependency resolution for external consumers. - Align sibling-module dependency versions to use \ consistently. - Ignore generated .flattened-pom.xml files. --- .gitignore | 1 + ordo-api/pom.xml | 2 +- ordo-core/pom.xml | 4 +- ordo-example/pom.xml | 6 +-- ordo-spring-boot-autoconfigure/pom.xml | 8 ++-- .../spring/OrdoJdbcAutoConfiguration.java | 11 +++-- ordo-spring-boot-starter/pom.xml | 4 +- ordo-storage-jdbc/pom.xml | 6 +-- pom.xml | 41 ++++++++++++++++++- 9 files changed, 64 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index 480bdf5..9453471 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ target/ !**/src/main/**/target/ !**/src/test/**/target/ .kotlin +.flattened-pom.xml ### IntelliJ IDEA ### .idea/modules.xml diff --git a/ordo-api/pom.xml b/ordo-api/pom.xml index 34afa63..bf9d048 100644 --- a/ordo-api/pom.xml +++ b/ordo-api/pom.xml @@ -6,7 +6,7 @@ com.jetlumen ordo - 1.0-SNAPSHOT + ${revision} ordo-api diff --git a/ordo-core/pom.xml b/ordo-core/pom.xml index faedace..3f8c5a5 100644 --- a/ordo-core/pom.xml +++ b/ordo-core/pom.xml @@ -6,7 +6,7 @@ com.jetlumen ordo - 1.0-SNAPSHOT + ${revision} ordo-core @@ -15,7 +15,7 @@ com.jetlumen ordo-api - ${project.version} + ${revision} org.junit.jupiter diff --git a/ordo-example/pom.xml b/ordo-example/pom.xml index fa03581..f0c1bf9 100644 --- a/ordo-example/pom.xml +++ b/ordo-example/pom.xml @@ -6,7 +6,7 @@ com.jetlumen ordo - 1.0-SNAPSHOT + ${revision} ordo-example @@ -15,12 +15,12 @@ com.jetlumen ordo-api - ${project.version} + ${revision} com.jetlumen ordo-core - ${project.version} + ${revision} diff --git a/ordo-spring-boot-autoconfigure/pom.xml b/ordo-spring-boot-autoconfigure/pom.xml index d819c7c..79dd6ad 100644 --- a/ordo-spring-boot-autoconfigure/pom.xml +++ b/ordo-spring-boot-autoconfigure/pom.xml @@ -6,7 +6,7 @@ com.jetlumen ordo - 1.0-SNAPSHOT + ${revision} ordo-spring-boot-autoconfigure @@ -34,17 +34,17 @@ com.jetlumen ordo-api - ${project.version} + ${revision} com.jetlumen ordo-core - ${project.version} + ${revision} com.jetlumen ordo-storage-jdbc - ${project.version} + ${revision} org.springframework.boot diff --git a/ordo-spring-boot-autoconfigure/src/main/java/com/jetlumen/ordo/spring/OrdoJdbcAutoConfiguration.java b/ordo-spring-boot-autoconfigure/src/main/java/com/jetlumen/ordo/spring/OrdoJdbcAutoConfiguration.java index c14b5cb..c66dc68 100644 --- a/ordo-spring-boot-autoconfigure/src/main/java/com/jetlumen/ordo/spring/OrdoJdbcAutoConfiguration.java +++ b/ordo-spring-boot-autoconfigure/src/main/java/com/jetlumen/ordo/spring/OrdoJdbcAutoConfiguration.java @@ -18,8 +18,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.sql.init.dependency.DependsOnDatabaseInitialization; import org.springframework.context.annotation.Bean; @@ -37,7 +35,14 @@ import java.time.Clock; @ConditionalOnProperty(prefix = "ordo", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnClass(DataSource.class) @ConditionalOnBean(DataSource.class) -@AutoConfigureAfter({DataSourceAutoConfiguration.class, FlywayAutoConfiguration.class}) +@AutoConfigureAfter(name = { + // Spring Boot 3.x locations + "org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration", + "org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration", + // Spring Boot 4.x locations (JDBC/Flyway autoconfiguration moved to dedicated modules) + "org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration", + "org.springframework.boot.flyway.autoconfigure.FlywayAutoConfiguration" +}) @EnableConfigurationProperties(OrdoProperties.class) public class OrdoJdbcAutoConfiguration { diff --git a/ordo-spring-boot-starter/pom.xml b/ordo-spring-boot-starter/pom.xml index ef9e4d8..dd7f280 100644 --- a/ordo-spring-boot-starter/pom.xml +++ b/ordo-spring-boot-starter/pom.xml @@ -6,7 +6,7 @@ com.jetlumen ordo - 1.0-SNAPSHOT + ${revision} ordo-spring-boot-starter @@ -34,7 +34,7 @@ com.jetlumen ordo-spring-boot-autoconfigure - ${project.version} + ${revision} org.springframework.boot diff --git a/ordo-storage-jdbc/pom.xml b/ordo-storage-jdbc/pom.xml index e2a9b06..a7c132d 100644 --- a/ordo-storage-jdbc/pom.xml +++ b/ordo-storage-jdbc/pom.xml @@ -6,7 +6,7 @@ com.jetlumen ordo - 1.0-SNAPSHOT + ${revision} ordo-storage-jdbc @@ -15,12 +15,12 @@ com.jetlumen ordo-api - ${project.version} + ${revision} com.jetlumen ordo-core - ${project.version} + ${revision} test diff --git a/pom.xml b/pom.xml index 67ca131..0e28a24 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.jetlumen ordo - 1.0-SNAPSHOT + ${revision} pom @@ -22,6 +22,7 @@ + 0.0.1-SNAPSHOT 21 21 UTF-8 @@ -63,6 +64,44 @@ maven-surefire-plugin 3.5.2 + + + org.codehaus.mojo + flatten-maven-plugin + 1.6.0 + + true + defaults + + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + +