Build Configuration for Micronaut

An application generated with GDK that uses Micronaut modules has its dependencies (and other configuration details) described in build files (such as build.gradle or pom.xml).

When an application is generated using the GDK Launcher or the GDK command, the configuration details are automatically added to the cross-platform build file (in the lib/ directory) and/or platform-specific build files (in the oci/ directory, for example).

However, there may be occasions when an application requires additional Micronaut modules (for example, to add Logging to an existing Email application). In these circumstances, the Micronaut dependencies must be added to the appropriate build file manually.

Note: Dependencies in a cross-platform build file ensure that source files in the lib/ directory can be compiled. Those dependencies have no effect on a platform-specific build file, so some are repeated in addition to the platform-specific dependencies to compile and run the application.

The sections below describe the relevant configuration details for each Micronaut module.

MySQL Database #

The cross-platform build file requires the following dependencies (including a runtime JDBC driver such as Hikari) and annotation processors:

lib/build.gradle

implementation("io.micronaut.data:micronaut-data-jdbc")
implementation("io.micronaut.sql:micronaut-jdbc-hikari")
implementation("io.micronaut.validation:micronaut-validation")
implementation("jakarta.validation:jakarta.validation-api")
runtimeOnly("mysql:mysql-connector-java")
annotationProcessor("io.micronaut.data:micronaut-data-processor")
annotationProcessor("io.micronaut.validation:micronaut-validation-processor")

lib/pom.xml

<dependency>
    <groupId>io.micronaut.data</groupId>
    <artifactId>micronaut-data-jdbc</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.sql</groupId>
    <artifactId>micronaut-jdbc-hikari</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.validation</groupId>
    <artifactId>micronaut-validation</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>jakarta.validation</groupId>
    <artifactId>jakarta.validation-api</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
...
<annotationProcessorPaths combine.self="override">
    ...
    <path>
        <groupId>io.micronaut</groupId>
        <artifactId>micronaut-inject-java</artifactId>
        <version>${micronaut.core.version}</version>
    </path>
    <path>
        <groupId>io.micronaut.data</groupId>
        <artifactId>micronaut-data-processor</artifactId>
        <version>${micronaut.data.version}</version>
    </path>
    <path>
        <groupId>io.micronaut</groupId>
        <artifactId>micronaut-graal</artifactId>
        <version>${micronaut.core.version}</version>
    </path>
    <path>
        <groupId>io.micronaut.validation</groupId>
        <artifactId>micronaut-validation-processor</artifactId>
        <version>${micronaut.validation.version}</version>
    </path>
    ...
</annotationProcessorPaths>

Platform-Specific Build File #

The platform-specific build file requires the following dependencies and annotation processors:

{oci | aws | gcp}/build.gradle

implementation("io.micronaut.data:micronaut-data-jdbc")
implementation("io.micronaut.sql:micronaut-jdbc-hikari")
implementation("io.micronaut.validation:micronaut-validation")
implementation("jakarta.validation:jakarta.validation-api")
implementation("io.micronaut.flyway:micronaut-flyway")
runtimeOnly("org.flywaydb:flyway-mysql")
runtimeOnly("mysql:mysql-connector-java")
annotationProcessor("io.micronaut.data:micronaut-data-processor")
annotationProcessor("io.micronaut.validation:micronaut-validation-processor")

{oci | aws | gcp}/pom.xml

<dependency>
    <groupId>io.micronaut.data</groupId>
    <artifactId>micronaut-data-jdbc</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.sql</groupId>
    <artifactId>micronaut-jdbc-hikari</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.validation</groupId>
    <artifactId>micronaut-validation</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>jakarta.validation</groupId>
    <artifactId>jakarta.validation-api</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.flyway</groupId>
    <artifactId>micronaut-flyway</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-mysql</artifactId>
    <scope>runtime</scope>
</dependency>
...
<annotationProcessorPaths combine.self="override">
    ...
    <path>
        <groupId>io.micronaut</groupId>
        <artifactId>micronaut-inject-java</artifactId>
        <version>${micronaut.core.version}</version>
    </path>
    <path>
        <groupId>io.micronaut.data</groupId>
        <artifactId>micronaut-data-processor</artifactId>
        <version>${micronaut.data.version}</version>
    </path>
    <path>
        <groupId>io.micronaut</groupId>
        <artifactId>micronaut-graal</artifactId>
        <version>${micronaut.core.version}</version>
    </path>
    <path>
        <groupId>io.micronaut.validation</groupId>
        <artifactId>micronaut-validation-processor</artifactId>
        <version>${micronaut.validation.version}</version>
    </path>
    ...
</annotationProcessorPaths>

Oracle Cloud Infrastructure Autonomous Database #

The cross-platform build file requires the following dependencies (including a runtime JDBC driver such as Hikari) and annotation processors:

lib/build.gradle

implementation("io.micronaut.data:micronaut-data-jdbc")
implementation("io.micronaut.sql:micronaut-jdbc-hikari")
implementation("io.micronaut.validation:micronaut-validation")
implementation("jakarta.validation:jakarta.validation-api")
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-atp")
annotationProcessor("io.micronaut.data:micronaut-data-processor")
annotationProcessor("io.micronaut.validation:micronaut-validation-processor")

lib/pom.xml

<dependency>
    <groupId>io.micronaut.data</groupId>
    <artifactId>micronaut-data-jdbc</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.sql</groupId>
    <artifactId>micronaut-jdbc-hikari</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.validation</groupId>
    <artifactId>micronaut-validation</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>jakarta.validation</groupId>
    <artifactId>jakarta.validation-api</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.flyway</groupId>
    <artifactId>micronaut-flyway</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.oraclecloud</groupId>
    <artifactId>micronaut-oraclecloud-httpclient-netty</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.oraclecloud</groupId>
    <artifactId>micronaut-oraclecloud-sdk</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-database-oracle</artifactId>
    <scope>runtime</scope>
</dependency>
...
<annotationProcessorPaths combine.self="override">
    ...
    <path>
        <groupId>io.micronaut</groupId>
        <artifactId>micronaut-inject-java</artifactId>
        <version>${micronaut.core.version}</version>
    </path>
    <path>
        <groupId>io.micronaut.data</groupId>
        <artifactId>micronaut-data-processor</artifactId>
        <version>${micronaut.data.version}</version>
    </path>
    <path>
        <groupId>io.micronaut</groupId>
        <artifactId>micronaut-graal</artifactId>
        <version>${micronaut.core.version}</version>
    </path>
    <path>
        <groupId>io.micronaut.validation</groupId>
        <artifactId>micronaut-validation-processor</artifactId>
        <version>${micronaut.validation.version}</version>
    </path>
    ...
</annotationProcessorPaths>

Platform-Specific Build File #

The platform-specific build file (for Oracle Cloud Infrastructure) requires the following dependencies and annotation processors:

oci/build.gradle

implementation("io.micronaut.data:micronaut-data-jdbc")
implementation("io.micronaut.sql:micronaut-jdbc-hikari")
implementation("io.micronaut.validation:micronaut-validation")
implementation("jakarta.validation:jakarta.validation-api")
implementation("io.micronaut.flyway:micronaut-flyway")
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-httpclient-netty")
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-sdk")
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-atp")
runtimeOnly("org.flywaydb:flyway-database-oracle")
annotationProcessor("io.micronaut.data:micronaut-data-processor")
annotationProcessor("io.micronaut.validation:micronaut-validation-processor")

oci/pom.xml

<dependency>
    <groupId>io.micronaut.data</groupId>
    <artifactId>micronaut-data-jdbc</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.sql</groupId>
    <artifactId>micronaut-jdbc-hikari</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.validation</groupId>
    <artifactId>micronaut-validation</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>jakarta.validation</groupId>
    <artifactId>jakarta.validation-api</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.flyway</groupId>
    <artifactId>micronaut-flyway</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.oraclecloud</groupId>
    <artifactId>micronaut-oraclecloud-httpclient-netty</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.oraclecloud</groupId>
    <artifactId>micronaut-oraclecloud-sdk</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-database-oracle</artifactId>
    <scope>runtime</scope>
</dependency>
...
<annotationProcessorPaths combine.self="override">
    ...
    <path>
        <groupId>io.micronaut</groupId>
        <artifactId>micronaut-inject-java</artifactId>
        <version>${micronaut.core.version}</version>
    </path>
    <path>
        <groupId>io.micronaut.data</groupId>
        <artifactId>micronaut-data-processor</artifactId>
        <version>${micronaut.data.version}</version>
    </path>
    <path>
        <groupId>io.micronaut</groupId>
        <artifactId>micronaut-graal</artifactId>
        <version>${micronaut.core.version}</version>
    </path>
    <path>
        <groupId>io.micronaut.validation</groupId>
        <artifactId>micronaut-validation-processor</artifactId>
        <version>${micronaut.validation.version}</version>
    </path>
    ...
</annotationProcessorPaths>

Email #

Oracle Cloud Infrastructure and the Google Cloud Platform both rely on the Jakarta Mail API.

The cross-platform build file requires the following dependencies and annotation processor:

lib/build.gradle

implementation("io.micronaut.validation:micronaut-validation")
implementation("jakarta.validation:jakarta.validation-api")
annotationProcessor("io.micronaut.validation:micronaut-validation-processor")

lib/pom.xml

<dependency>
    <groupId>io.micronaut.validation</groupId>
    <artifactId>micronaut-validation</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>jakarta.validation</groupId>
    <artifactId>jakarta.validation-api</artifactId>
    <scope>compile</scope>
</dependency>
...
<annotationProcessorPaths combine.self="override">
    ...
    <path>
        <groupId>io.micronaut.validation</groupId>
        <artifactId>micronaut-validation-processor</artifactId>
        <version>${micronaut.validation.version}</version>
    </path>
    ...
</annotationProcessorPaths>

Oracle Cloud Infrastructure Email Delivery Service #

The platform-specific build file requires the following dependencies:

oci/build.gradle

implementation("io.micronaut.email:micronaut-email-javamail")
runtimeOnly("org.eclipse.angus:angus-mail")

oci/pom.xml

<dependency>
    <groupId>io.micronaut.email</groupId>
    <artifactId>micronaut-email-javamail</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>org.eclipse.angus</groupId>
    <artifactId>angus-mail</artifactId>
    <scope>runtime</scope>
</dependency>

Amazon Simple Email Service #

The platform-specific build file requires the following dependencies:

aws/build.gradle

implementation("io.micronaut.aws:micronaut-aws-sdk-v2")
implementation("io.micronaut.email:micronaut-email-amazon-ses")

aws/pom.xml

<dependency>
    <groupId>io.micronaut.aws</groupId>
    <artifactId>micronaut-aws-sdk-v2</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.email</groupId>
    <artifactId>micronaut-email-amazon-ses</artifactId>
    <scope>compile</scope>
</dependency>

Kubernetes #

The cross-platform build file requires the following dependencies:

lib/build.gradle

implementation("io.micronaut.kubernetes:micronaut-kubernetes-client")
implementation("io.micronaut.kubernetes:micronaut-kubernetes-discovery-client")

lib/pom.xml

<dependency>
    <groupId>io.micronaut.kubernetes</groupId>
    <artifactId>micronaut-kubernetes-client</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.kubernetes</groupId>
    <artifactId>micronaut-kubernetes-discovery-client</artifactId>
    <scope>compile</scope>
</dependency>

Platform-Specific Build File #

The platform-specific build file requires the following dependencies:

{oci | aws | gcp}/build.gradle

implementation("io.micronaut.kubernetes:micronaut-kubernetes-client")
implementation("io.micronaut.kubernetes:micronaut-kubernetes-discovery-client")
implementation("io.micronaut:micronaut-management")

{oci | aws | gcp}/pom.xml

<dependency>
    <groupId>io.micronaut.kubernetes</groupId>
    <artifactId>micronaut-kubernetes-client</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.kubernetes</groupId>
    <artifactId>micronaut-kubernetes-discovery-client</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut</groupId>
    <artifactId>micronaut-management</artifactId>
    <scope>compile</scope>
</dependency>

Logging #

The cross-platform build file requires the following dependency:

lib/build.gradle

runtimeOnly("io.grpc:grpc-netty")

lib/pom.xml

<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty</artifactId>
    <scope>runtime</scope>
</dependency>

Oracle Cloud Infrastructure Logging Service #

The platform-specific build file requires the following dependencies:

oci/build.gradle

implementation("ch.qos.logback.contrib:logback-jackson:0.1.5")
implementation("ch.qos.logback.contrib:logback-json-classic:0.1.5")
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-httpclient-netty")
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-logging")
runtimeOnly("io.grpc:grpc-netty")

oci/pom.xml

<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty</artifactId>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>ch.qos.logback.contrib</groupId>
    <artifactId>logback-jackson</artifactId>
    <version>0.1.5</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>ch.qos.logback.contrib</groupId>
    <artifactId>logback-json-classic</artifactId>
    <version>0.1.5</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.oraclecloud</groupId>
    <artifactId>micronaut-oraclecloud-httpclient-netty</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.oraclecloud</groupId>
    <artifactId>micronaut-oraclecloud-logging</artifactId>
    <scope>compile</scope>
</dependency>

Amazon CloudWatch Logs #

The platform-specific build file requires the following dependencies:

lib/build.gradle

implementation("io.micronaut.aws:micronaut-aws-cloudwatch-logging")
runtimeOnly("io.grpc:grpc-netty")

lib/pom.xml

<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty</artifactId>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.aws</groupId>
    <artifactId>micronaut-aws-cloudwatch-logging</artifactId>
    <scope>compile</scope>
</dependency>

Google Cloud Logging #

The platform-specific build file requires the following dependencies:

lib/build.gradle

implementation("com.google.cloud:google-cloud-logging-logback:0.130.28-alpha")
runtimeOnly("io.grpc:grpc-netty")

lib/pom.xml

<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty</artifactId>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-logging-logback</artifactId>
    <version>0.130.28-alpha</version>
    <scope>compile</scope>
</dependency>

Metrics #

The cross-platform build file requires the following dependencies and annotation processor:

lib/build.gradle

implementation("io.micronaut.micrometer:micronaut-micrometer-core")
implementation("io.micronaut:micronaut-management")
runtimeOnly("io.grpc:grpc-netty")
annotationProcessor("io.micronaut.micrometer:micronaut-micrometer-annotation")

lib/pom.xml

<dependency>
    <groupId>io.micronaut.micrometer</groupId>
    <artifactId>micronaut-micrometer-core</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut</groupId>
    <artifactId>micronaut-management</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty</artifactId>
    <scope>runtime</scope>
</dependency>
...
<annotationProcessorPaths combine.self="override">
    ...
    <path>
        <groupId>io.micronaut.micrometer</groupId>
        <artifactId>micronaut-micrometer-annotation</artifactId>
        <version>${micronaut.micrometer.version}</version>
    </path>
    ...
</annotationProcessorPaths>

Oracle Cloud Infrastructure Monitoring #

The platform-specific build file requires the following dependencies and annotation processor:

oci/build.gradle

implementation("io.micronaut.micrometer:micronaut-micrometer-core")
implementation("io.micronaut:micronaut-management")
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-bmc-monitoring")
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-httpclient-netty")
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-micrometer")
runtimeOnly("io.grpc:grpc-netty")
annotationProcessor("io.micronaut.micrometer:micronaut-micrometer-annotation")

oci/pom.xml

<dependency>
    <groupId>io.micronaut.micrometer</groupId>
    <artifactId>micronaut-micrometer-core</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut</groupId>
    <artifactId>micronaut-management</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty</artifactId>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.oraclecloud</groupId>
    <artifactId>micronaut-oraclecloud-bmc-monitoring</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.oraclecloud</groupId>
    <artifactId>micronaut-oraclecloud-httpclient-netty</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.oraclecloud</groupId>
    <artifactId>micronaut-oraclecloud-micrometer</artifactId>
    <scope>compile</scope>
</dependency>
...
<annotationProcessorPaths combine.self="override">
    ...
    <path>
        <groupId>io.micronaut.micrometer</groupId>
        <artifactId>micronaut-micrometer-annotation</artifactId>
        <version>${micronaut.micrometer.version}</version>
    </path>
    ...
</annotationProcessorPaths>

Amazon CloudWatch #

The platform-specific build file requires the following dependencies and annotation processor:

aws/build.gradle

implementation("io.micronaut.micrometer:micronaut-micrometer-core")
implementation("io.micronaut:micronaut-management")
implementation("io.micronaut.micrometer:micronaut-micrometer-registry-cloudwatch")
runtimeOnly("io.grpc:grpc-netty")
annotationProcessor("io.micronaut.micrometer:micronaut-micrometer-annotation")

aws/pom.xml

<dependency>
    <groupId>io.micronaut.micrometer</groupId>
    <artifactId>micronaut-micrometer-core</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut</groupId>
    <artifactId>micronaut-management</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty</artifactId>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.micrometer</groupId>
    <artifactId>micronaut-micrometer-registry-cloudwatch</artifactId>
    <scope>compile</scope>
</dependency>
...
<annotationProcessorPaths combine.self="override">
    ...
    <path>
        <groupId>io.micronaut.micrometer</groupId>
        <artifactId>micronaut-micrometer-annotation</artifactId>
        <version>${micronaut.micrometer.version}</version>
    </path>
    ...
</annotationProcessorPaths>

Google Cloud Monitoring #

The platform-specific build file requires the following dependencies and annotation processor:

gcp/build.gradle

implementation("io.micronaut.micrometer:micronaut-micrometer-core")
implementation("io.micronaut:micronaut-management")
implementation("io.micronaut.micrometer:micronaut-micrometer-registry-stackdriver")
runtimeOnly("io.grpc:grpc-netty")
annotationProcessor("io.micronaut.micrometer:micronaut-micrometer-annotation")

gcp/pom.xml

<dependency>
    <groupId>io.micronaut.micrometer</groupId>
    <artifactId>micronaut-micrometer-core</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut</groupId>
    <artifactId>micronaut-management</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty</artifactId>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.micrometer</groupId>
    <artifactId>micronaut-micrometer-registry-stackdriver</artifactId>
    <scope>compile</scope>
</dependency>
...
<annotationProcessorPaths combine.self="override">
    ...
    <path>
        <groupId>io.micronaut.micrometer</groupId>
        <artifactId>micronaut-micrometer-annotation</artifactId>
        <version>${micronaut.micrometer.version}</version>
    </path>
    ...
</annotationProcessorPaths>

Object Storage #

The cross-platform build file requires the following dependencies:

lib/build.gradle

implementation("io.micronaut.objectstorage:micronaut-object-storage-core")
compileOnly("io.micronaut:micronaut-http-server")
runtimeOnly("io.grpc:grpc-netty")

lib/pom.xml

<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty</artifactId>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.objectstorage</groupId>
    <artifactId>micronaut-object-storage-core</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut</groupId>
    <artifactId>micronaut-http-server</artifactId>
    <scope>provided</scope>
</dependency>

Oracle Cloud Infrastructure Object Storage #

The build file requires the following dependencies:

oci/build.gradle

implementation("io.micronaut.objectstorage:micronaut-object-storage-oracle-cloud")
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-httpclient-netty")
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-sdk")
runtimeOnly("io.grpc:grpc-netty")

oci/pom.xml

<dependency>
    <groupId>io.micronaut.objectstorage</groupId>
    <artifactId>micronaut-object-storage-oracle-cloud</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.oraclecloud</groupId>
    <artifactId>micronaut-oraclecloud-httpclient-netty</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.oraclecloud</groupId>
    <artifactId>micronaut-oraclecloud-sdk</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty</artifactId>
    <scope>runtime</scope>
</dependency>

Amazon S3 Object Storage #

The build file requires the following dependencies:

aws/build.gradle

implementation("io.micronaut.aws:micronaut-aws-sdk-v2")
implementation("io.micronaut.objectstorage:micronaut-object-storage-aws")
runtimeOnly("io.grpc:grpc-netty")

aws/pom.xml

<dependency>
    <groupId>io.micronaut.aws</groupId>
    <artifactId>micronaut-aws-sdk-v2</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.objectstorage</groupId>
    <artifactId>micronaut-object-storage-aws</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty</artifactId>
    <scope>runtime</scope>
</dependency>

Google Cloud Storage #

The build file requires the following dependencies:

gcp/build.gradle

implementation("io.micronaut.objectstorage:micronaut-object-storage-gcp")
runtimeOnly("io.grpc:grpc-netty")

gcp/pom.xml

<dependency>
    <groupId>io.micronaut.objectstorage</groupId>
    <artifactId>micronaut-object-storage-gcp</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty</artifactId>
    <scope>runtime</scope>
</dependency>

Secret Management #

The cross-platform build file requires the following dependency:

lib/build.gradle

runtimeOnly("io.grpc:grpc-netty")

lib/pom.xml

<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty</artifactId>
    <scope>runtime</scope>
</dependency>

Oracle Cloud Infrastructure Vault #

The build file requires the following dependencies:

oci/build.gradle

implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-httpclient-netty")
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-vault")
runtimeOnly("io.grpc:grpc-netty")

oci/pom.xml

<dependency>
    <groupId>io.micronaut.oraclecloud</groupId>
    <artifactId>micronaut-oraclecloud-httpclient-netty</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.oraclecloud</groupId>
    <artifactId>micronaut-oraclecloud-vault</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty</artifactId>
    <scope>runtime</scope>
</dependency>

Amazon Web Service Secrets Manager #

The build file requires the following dependencies and annotation processor:

aws/build.gradle

implementation("io.micronaut.aws:micronaut-aws-sdk-v2")
implementation("io.micronaut.aws:micronaut-aws-secretsmanager")
implementation("io.micronaut.security:micronaut-security-oauth2")
runtimeOnly("io.grpc:grpc-netty")
annotationProcessor("io.micronaut.security:micronaut-security-annotations")

aws/pom.xml

<dependency>
    <groupId>io.micronaut.aws</groupId>
    <artifactId>micronaut-aws-sdk-v2</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.aws</groupId>
    <artifactId>micronaut-aws-secretsmanager</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.security</groupId>
    <artifactId>micronaut-security-oauth2</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty</artifactId>
    <scope>runtime</scope>
</dependency>
...
<annotationProcessorPaths combine.self="override">
    ...
    <path>
        <groupId>io.micronaut.security</groupId>
        <artifactId>micronaut-security-annotations</artifactId>
        <version>${micronaut.security.version}</version>
    </path>
    ...
</annotationProcessorPaths>

Google Secret Manager #

The build file requires the following dependencies:

gcp/build.gradle

implementation("io.micronaut.gcp:micronaut-gcp-secret-manager")
runtimeOnly("io.grpc:grpc-netty")

gcp/pom.xml

<dependency>
    <groupId>io.micronaut.gcp</groupId>
    <artifactId>micronaut-gcp-secret-manager</artifactId>
    lt;scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty</artifactId>
    <scope>runtime</scope>
</dependency>

Security #

The cross-platform build file does not require any additional dependencies.

Platform-Specific Build File #

The platform-specific build file requires the following dependencies and annotation processor:

{oci | aws | gcp}/build.gradle

implementation("io.micronaut.security:micronaut-security-jwt")
implementation("io.micronaut.security:micronaut-security-oauth2")
annotationProcessor("io.micronaut.security:micronaut-security-annotations")

{oci | aws | gcp}/pom.xml

<dependency>
    <groupId>io.micronaut.security</groupId>
    <artifactId>micronaut-security-jwt</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.security</groupId>
    <artifactId>micronaut-security-oauth2</artifactId>
    <scope>compile</scope>
</dependency>
...
<annotationProcessorPaths combine.self="override">
    ...
    <path>
        <groupId>io.micronaut.security</groupId>
        <artifactId>micronaut-security-annotations</artifactId>
        <version>${micronaut.security.version}</version>
    </path>
    ...
</annotationProcessorPaths>

Streaming #

The cross-platform build file requires the following dependency:

lib/build.gradle

implementation("io.micronaut.kafka:micronaut-kafka")

lib/pom.xml

<dependency>
    <groupId>io.micronaut.kafka</groupId>
    <artifactId>micronaut-kafka</artifactId>
    <scope>compile</scope>
</dependency>

Oracle Cloud Infrastructure Streaming Service #

The build file requires the following dependencies:

oci/build.gradle

implementation("io.micronaut.kafka:micronaut-kafka")
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-httpclient-netty")
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-sdk")

oci/pom.xml

<dependency>
    <groupId>io.micronaut.kafka</groupId>
    <artifactId>micronaut-kafka</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.oraclecloud</groupId>
    <artifactId>micronaut-oraclecloud-httpclient-netty</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.oraclecloud</groupId>
    <artifactId>micronaut-oraclecloud-sdk</artifactId>
    <scope>compile</scope>
</dependency>

Amazon Managed Streaming for Apache Kafka #

The build file requires the following dependencies:

aws/build.gradle

implementation("io.micronaut.kafka:micronaut-kafka")
implementation("io.micronaut.aws:micronaut-aws-sdk-v2")
runtimeOnly("software.amazon.msk:aws-msk-iam-auth:2.0.3")

aws/pom.xml

<dependency>
    <groupId>io.micronaut.kafka</groupId>
    <artifactId>micronaut-kafka</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.aws</groupId>
    <artifactId>micronaut-aws-sdk-v2</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>software.amazon.msk</groupId>
    <artifactId>aws-msk-iam-auth</artifactId>
    <version>2.0.3</version>
    <scope>runtime</scope>
</dependency>

Google Cloud Platform Apache Kafka #

The build file requires the following dependency:

gcp/build.gradle

implementation("io.micronaut.kafka:micronaut-kafka")

gcp/pom.xml

<dependency>
    <groupId>io.micronaut.kafka</groupId>
    <artifactId>micronaut-kafka</artifactId>
    <scope>compile</scope>
</dependency>

Tracing #

The cross-platform build file requires the following dependencies and annotation processor:

lib/build.gradle

implementation("io.micronaut.tracing:micronaut-tracing-opentelemetry")
implementation("io.micronaut.tracing:micronaut-tracing-opentelemetry-http")
runtimeOnly("io.grpc:grpc-netty")
annotationProcessor("io.micronaut.tracing:micronaut-tracing-opentelemetry-annotation")

lib/pom.xml

<dependency>
    <groupId>io.micronaut.tracing</groupId>
    <artifactId>micronaut-tracing-opentelemetry</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.tracing</groupId>
    <artifactId>micronaut-tracing-opentelemetry-http</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty</artifactId>
    <scope>runtime</scope>
</dependency>
...
<annotationProcessorPaths combine.self="override">
    ...
    <path>
        <groupId>iio.micronaut.tracing</groupId>
        <artifactId>micronaut-tracing-opentelemetry-annotations</artifactId>
        <version>${micronaut.tracing.version}</version>
    </path>
    ...
</annotationProcessorPaths>

Oracle Cloud Infrastructure Application Performance Monitoring #

The build file requires the following dependencies:

oci/build.gradle

implementation("io.micronaut.tracing:micronaut-tracing-opentelemetry-zipkin-exporter")
runtimeOnly("io.grpc:grpc-netty")

oci/pom.xml

<dependency>
    <groupId>io.micronaut.tracing</groupId>
    <artifactId>micronaut-tracing-opentelemetry-zipkin-exporter</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty</artifactId>
    <scope>runtime</scope>
</dependency>

AWS X-Ray #

The platform-specific build file requires the following dependencies and annotation processor:

aws/build.gradle

implementation("io.micronaut.tracing:micronaut-tracing-opentelemetry-http")
implementation("io.opentelemetry:opentelemetry-exporter-otlp")
implementation("io.opentelemetry:opentelemetry-extension-aws")
implementation("io.opentelemetry.contrib:opentelemetry-aws-xray")
runtimeOnly("io.grpc:grpc-netty")
annotationProcessor("io.micronaut.tracing:micronaut-tracing-opentelemetry-annotation")

aws/pom.xml

<dependency>
    <groupId>io.micronaut.tracing</groupId>
    <artifactId>micronaut-tracing-opentelemetry-http</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.opentelemetry</groupId>
    <artifactId>opentelemetry-exporter-otlp</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.opentelemetry</groupId>
    <artifactId>opentelemetry-extension-aws</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.opentelemetry.contrib</groupId>
    <artifactId>opentelemetry-aws-xray</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty</artifactId>
    <scope>runtime</scope>
</dependency>
...
<annotationProcessorPaths combine.self="override">
    ...
    <path>
        <groupId>io.micronaut.tracing</groupId>
        <artifactId>micronaut-tracing-opentelemetry-annotation</artifactId>
        <version>${micronaut.tracing.version}</version>
    </path>
    ...
</annotationProcessorPaths>

Google Cloud Trace #

The platform-specific build file requires the following dependencies and annotation processor:

gcp/build.gradle

implementation("com.google.cloud.opentelemetry:exporter-auto")
implementation("io.micronaut.tracing:micronaut-tracing-opentelemetry-http")
implementation("io.opentelemetry:opentelemetry-semconv")
runtimeOnly("io.grpc:grpc-netty")
annotationProcessor("io.micronaut.tracing:micronaut-tracing-opentelemetry-annotation")

gcp/pom.xml

<dependency>
    <groupId>com.google.cloud.opentelemetry</groupId>
    <artifactId>exporter-auto</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micronaut.tracing</groupId>
    <artifactId>micronaut-tracing-opentelemetry-http</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.opentelemetry</groupId>
    <artifactId>opentelemetry-semconv</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty</artifactId>
    <scope>runtime</scope>
</dependency>
...
<annotationProcessorPaths combine.self="override">
    ...
    <path>
        <groupId>io.micronaut.tracing</groupId>
        <artifactId>micronaut-tracing-opentelemetry-annotation</artifactId>
        <version>${micronaut.tracing.version}</version>
    </path>
    ...
</annotationProcessorPaths>