build: Change to maven#628
Conversation
hantsy
commented
Apr 25, 2026
- chore: backup and remove root parent POM
- chore: propagate versions to core modules
- chore: propagate versions to core modules (add explicit versions)
- chore: propagate versions to core modules (kotlin poms fixes)
- chore: propagate versions to core modules (remove BOM imports, fix plugin versions)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ugin versions) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Code Review
This pull request establishes a multi-module Maven project for a Micronaut sandbox, covering various data access technologies like JDBC and R2DBC with both Java and Kotlin implementations. The review feedback highlights several configuration issues: the Kotlin modules are missing KAPT/KSP for annotation processing, and the project incorrectly targets an unreleased Java 25 version. Other improvements include synchronizing Kotlin plugin versions, utilizing the Micronaut BOM for dependency management, and replacing deprecated Kotlin artifacts to ensure build stability and consistency.
| </configuration> | ||
| </execution> | ||
| </executions> | ||
| <!-- TODO: Configure KSP/KAPT for Kotlin annotation processing if required --> |
There was a problem hiding this comment.
Micronaut requires annotation processing to generate bean definitions and repositories. For Kotlin, you must configure either KAPT or KSP in the kotlin-maven-plugin. The current configuration only defines annotation processors for the maven-compiler-plugin (Java), which will result in missing bean definitions for Kotlin classes at runtime.
| <name>data-jdbc-kotlin</name> | ||
| <properties> | ||
| <!-- Global --> | ||
| <java.version>25</java.version> |
There was a problem hiding this comment.
| <!-- Plugin versions --> | ||
| <maven-compiler-plugin.version>3.11.0</maven-compiler-plugin.version> | ||
| <micronaut.maven.plugin.version>4.6.1</micronaut.maven.plugin.version> | ||
| <kotlin-maven-plugin.version>1.8.22</kotlin-maven-plugin.version> |
There was a problem hiding this comment.
The kotlin-maven-plugin version (1.8.22) is incompatible with the specified kotlin.version (2.2.21). It is recommended to keep the plugin version in sync with the Kotlin version to avoid compiler errors.
| <kotlin-maven-plugin.version>1.8.22</kotlin-maven-plugin.version> | |
| <kotlin-maven-plugin.version>${kotlin.version}</kotlin-maven-plugin.version> |
| <dependency> | ||
| <groupId>io.micronaut.data</groupId> | ||
| <artifactId>micronaut-data-jdbc</artifactId> | ||
| <version>${micronaut.version}</version> |
There was a problem hiding this comment.
Using ${micronaut.version} for Micronaut Data is incorrect. Micronaut modules (like Data, SQL, etc.) have their own versioning schemes that differ from the core framework version. It is strongly recommended to use the Micronaut BOM (micronaut-bom) in a <dependencyManagement> section to manage these versions automatically and ensure compatibility across all Micronaut components.
| <goal>test-compile</goal> | ||
| </goals> | ||
| <configuration> | ||
| <jvmTarget>25</jvmTarget> |
| <path> | ||
| <groupId>org.projectlombok</groupId> | ||
| <artifactId>lombok</artifactId> | ||
| <version>1.18.30</version> |
| </dependency> | ||
| <dependency> | ||
| <groupId>org.jetbrains.kotlin</groupId> | ||
| <artifactId>kotlin-stdlib-jdk8</artifactId> |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
aa6c931 to
33f8248
Compare