The following was discovered as part of building this project:
- The original package name 'it.pagopa.rtp-activator' is invalid and this project uses 'it.pagopa.rtp_activator' instead.
For further reference, please consider the following sections:
- Official Gradle documentation
- Spring Boot Gradle Plugin Reference Guide
- Create an OCI image
- GraalVM Native Image Support
- Azure Actuator
- Spring Reactive Web
- Azure Cosmos DB
- Spring Boot Actuator
The following guides illustrate how to use some features concretely:
- Building a Reactive RESTful Web Service
- How to use Spring Boot Starter with Azure Cosmos DB SQL API
- Building a RESTful Web Service with Spring Boot Actuator
These additional references should also help you:
- Gradle Build Scans – insights for your project's build
- Configure AOT settings in Build Plugin
- Azure Cosmos DB Sample
This project has been configured to let you generate either a lightweight container or a native executable. It is also possible to run your tests in a native image.
If you're already familiar with Spring Boot container images support, this is the easiest way to get started. Docker should be installed and configured on your machine prior to creating the image.
To create the image, run the following goal:
$ ./gradlew bootBuildImage
Then, you can run the app like any other container:
$ docker run --rm rtp-activator:0.0.1-SNAPSHOT
Use this option if you want to explore more options such as running your tests in a native image.
The GraalVM native-image
compiler should be installed and configured on your machine.
NOTE: GraalVM 22.3+ is required.
To create the executable, run the following goal:
$ ./gradlew nativeCompile
Then, you can run the app as follows:
$ build/native/nativeCompile/rtp-activator
You can also run your existing tests suite in a native image. This is an efficient way to validate the compatibility of your application.
To run your existing tests in a native image, run the following goal:
$ ./gradlew nativeTest
There are some limitations regarding Native Build Tools and Gradle toolchains. Native Build Tools disable toolchain support by default. Effectively, native image compilation is done with the JDK used to execute Gradle. You can read more about toolchain support in the Native Build Tools here.