Micronaut Project Template Used to create new modules Defines project “template” Defines files to be sync’ed on all projects Shared configuration (checkstyle rules, ...)
An internal plugin suite • Models how Micronaut modules are built • Configures common behavior Quality checks Sonar Publication to Maven Central Build cache Test selection ...
• For Maven users, think of “composite parent POMs” • Take care of shared configuration, aka conventions • Different plugins From Micronaut Build Plugins (internal) io.micronaut.build.internal.module : typical Micronaut module, with annotation processing enabled, published on Maven Central, etc. io.micronaut.build.internal.bom: a “platform”, or BOM for Maven
• For Maven users, think of “composite parent POMs” • Take care of shared configuration, aka conventions • Different plugins From Micronaut Build Plugins (internal) io.micronaut.build.internal.module : typical Micronaut module, with annotation processing enabled, published on Maven Central, etc. io.micronaut.build.internal.bom: a “platform”, or BOM for Maven
• Forget about Maven lifecycle • In Gradle, lifecycle is dynamic A task (compileJava, test, ...) inputs outputs https://melix.github.io/blog/2021/10/gradle-quickie-dependson.html https://melix.github.io/blog/2022/01/understanding-provider-api.html
• Gradle plugins are designed with the same composition model in mind • io.micronaut.application = micronaut + application + docker + GraalVM • io.micronaut.library = micronaut + library + docker + GraalVM • io.micronaut.minimal.application = micronaut + application • io.micronaut.minimal.library = micronaut + library • Declarative as much as possible