Last active
March 28, 2024 04:58
-
-
Save klopfdreh/efe897684ea54524883811a19e3d5d62 to your computer and use it in GitHub Desktop.
Spring Boot 3 / Spring Cloud native test for arm64
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<project xmlns="http://maven.apache.org/POM/4.0.0" | |
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
<modelVersion>4.0.0</modelVersion> | |
<groupId>spring-boot-native</groupId> | |
<artifactId>spring-boot-native-test</artifactId> | |
<version>1.0.0-SNAPSHOT</version> | |
<properties> | |
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |
<java.version>17</java.version> | |
<spring.version>3.0.1</spring.version> | |
<!-- Currently only the RC of Spring Cloud supports Spring Boot 3 --> | |
<spring-cloud.version>2022.0.0-RC2</spring-cloud.version> | |
<!-- native-maven-plugin version can be determined from BOM of Spring Boot 3 --> | |
<native-maven-plugin.version>0.9.18</native-maven-plugin.version> | |
</properties> | |
<dependencies> | |
<dependency> | |
<groupId>org.springframework.boot</groupId> | |
<artifactId>spring-boot-starter-web</artifactId> | |
</dependency> | |
<dependency> | |
<groupId>org.springframework.cloud</groupId> | |
<artifactId>spring-cloud-starter-config</artifactId> | |
</dependency> | |
</dependencies> | |
<dependencyManagement> | |
<dependencies> | |
<dependency> | |
<groupId>org.springframework.boot</groupId> | |
<artifactId>spring-boot-dependencies</artifactId> | |
<version>${spring.version}</version> | |
<type>pom</type> | |
<scope>import</scope> | |
</dependency> | |
<dependency> | |
<groupId>org.springframework.cloud</groupId> | |
<artifactId>spring-cloud-dependencies</artifactId> | |
<version>${spring-cloud.version}</version> | |
<type>pom</type> | |
<scope>import</scope> | |
</dependency> | |
</dependencies> | |
</dependencyManagement> | |
<!-- Spring repositories for RC releases --> | |
<repositories> | |
<repository> | |
<id>spring-snapshots</id> | |
<url>https://repo.spring.io/snapshot</url> | |
<snapshots> | |
<enabled>true</enabled> | |
</snapshots> | |
</repository> | |
<repository> | |
<id>spring-milestones</id> | |
<url>https://repo.spring.io/milestone</url> | |
</repository> | |
</repositories> | |
<pluginRepositories> | |
<pluginRepository> | |
<id>spring-snapshots</id> | |
<url>https://repo.spring.io/snapshot</url> | |
</pluginRepository> | |
<pluginRepository> | |
<id>spring-milestones</id> | |
<url>https://repo.spring.io/milestone</url> | |
</pluginRepository> | |
</pluginRepositories> | |
<build> | |
<plugins> | |
<plugin> | |
<groupId>org.springframework.boot</groupId> | |
<artifactId>spring-boot-maven-plugin</artifactId> | |
</plugin> | |
<plugin> | |
<groupId>org.graalvm.buildtools</groupId> | |
<artifactId>native-maven-plugin</artifactId> | |
</plugin> | |
</plugins> | |
</build> | |
<!-- Because we don't want to use Spring Boot 3 Starter Parent we need to ensure the native profiles included. See: | |
https://github.com/spring-projects/spring-boot/blob/ed5fe2d26ec4abad88f49005b499602dae4daa17/spring-boot-project/spring-boot-starters/spring-boot-starter-parent/build.gradle#L231 | |
and https://github.com/spring-projects/spring-boot/blob/3.2.x/gradle.properties | |
and the Tip in the section of: | |
https://docs.spring.io/spring-boot/docs/3.0.0/reference/html/native-image.html#native-image.developing-your-first-application.buildpacks.maven | |
--> | |
<profiles> | |
<profile> | |
<id>native</id> | |
<build> | |
<pluginManagement> | |
<plugins> | |
<plugin> | |
<groupId>org.springframework.boot</groupId> | |
<artifactId>spring-boot-maven-plugin</artifactId> | |
<!-- versions of plugins has to be provided if spring-boot-starter-parent is not used see: | |
https://stackoverflow.com/questions/40606267/how-does-importing-maven-dependencies-impact-plugin-management | |
--> | |
<version>${spring.version}</version> | |
<configuration> | |
<image> | |
<!-- currently needs to be changed due to the tickets: | |
https://github.com/paketo-buildpacks/base-builder/issues/652 | |
https://github.com/spring-projects/spring-boot/issues/33494 | |
--> | |
<builder>dashaun/java-native-builder-arm64</builder> | |
<env> | |
<BP_NATIVE_IMAGE>true</BP_NATIVE_IMAGE> | |
</env> | |
</image> | |
</configuration> | |
<executions> | |
<execution> | |
<id>process-aot</id> | |
<goals> | |
<goal>process-aot</goal> | |
</goals> | |
</execution> | |
</executions> | |
</plugin> | |
<plugin> | |
<groupId>org.graalvm.buildtools</groupId> | |
<artifactId>native-maven-plugin</artifactId> | |
<version>${native-maven-plugin.version}</version> | |
<configuration> | |
<classesDirectory>${project.build.outputDirectory}</classesDirectory> | |
<metadataRepository> | |
<enabled>true</enabled> | |
</metadataRepository> | |
<requiredVersion>22.3</requiredVersion> | |
</configuration> | |
<executions> | |
<execution> | |
<id>add-reachability-metadata</id> | |
<goals> | |
<goal>add-reachability-metadata</goal> | |
</goals> | |
</execution> | |
</executions> | |
</plugin> | |
</plugins> | |
</pluginManagement> | |
</build> | |
</profile> | |
<profile> | |
<id>nativeTest</id> | |
<dependencies> | |
<dependency> | |
<groupId>org.junit.platform</groupId> | |
<artifactId>junit-platform-launcher</artifactId> | |
<scope>test</scope> | |
</dependency> | |
</dependencies> | |
<build> | |
<plugins> | |
<plugin> | |
<groupId>org.springframework.boot</groupId> | |
<artifactId>spring-boot-maven-plugin</artifactId> | |
<version>${spring.version}</version> | |
<executions> | |
<execution> | |
<id>process-test-aot</id> | |
<goals> | |
<goal>process-test-aot</goal> | |
</goals> | |
</execution> | |
</executions> | |
</plugin> | |
<plugin> | |
<groupId>org.graalvm.buildtools</groupId> | |
<artifactId>native-maven-plugin</artifactId> | |
<version>${native-maven-plugin.version}</version> | |
<configuration> | |
<classesDirectory>${project.build.outputDirectory}</classesDirectory> | |
<metadataRepository> | |
<enabled>true</enabled> | |
</metadataRepository> | |
<requiredVersion>22.3</requiredVersion> | |
</configuration> | |
<executions> | |
<execution> | |
<id>native-test</id> | |
<goals> | |
<goal>test</goal> | |
</goals> | |
</execution> | |
</executions> | |
</plugin> | |
</plugins> | |
</build> | |
</profile> | |
</profiles> | |
</project> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment