GraalVM是开发人员编写和执行Java代码的工具。具体来说,GraalVM是由Oracle创建的Java虚拟机(JVM)和Java开发工具包(JDK)。它是一个高性能的运行时,可以提高应用程序的性能和效率。
GraalVM的目标包括:编写一个更快、更易于维护的编译器,提高在JVM上运行的语言的性能,减少应用程序启动时间,将多语言支持集成到Java生态系统中,以及为此提供一组编程工具。
GraalVM向JDK添加了一个优化编译器,它为各种语言提供性能优化,并为多语言应用程序提供互操作性。除了支持Java代码,GraalVM还支持其他编程语言,包括Scala、Kotlin、Groovy、Clojure、R、Python、JavaScript和Ruby。从本质上讲,GraalVM允许开发人员在单个应用程序中以多种语言和库高效地运行代码。
一,准备工作:
1. 安装 GraalVM
下载地址:https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-22.3.0
解压到本地
2.配置 GRAALVM_HOME 环境变量
3, Path 配置
4.验证安装结果:
表示环境配置完成;
二. 安装 native image,用于构建
1. 由于网络问题,需要手动下载对应版本的
2.本地cmd,执行命令
gu install -L native-image-installable-svm-java11-windows-amd64-22.0.0.2.jar
3.验证;可以使用命令查看,已经安装的功能
gu list
安装成功;
三,搭建 spring boot 3的项目
IDEA 使用的版本 2022.3
注意选择刚安装的 graalvm sdk;
2. 配置项目 pom 文件
<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.0</version>
</parent>
<groupId>你的组织名</groupId>
<artifactId>你的项目名</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
<extensions>true</extensions>
<executions>
<execution>
<id>build-native</id>
<goals>
<goal>compile-no-fork</goal>
</goals>
<phase>package</phase>
</execution>
<execution>
<id>test-native</id>
<goals>
<goal>test</goal>
</goals>
<phase>test</phase>
</execution>
</executions>
<configuration>
<!--此处是入口类,必须与实际代码一致,否则无法打包成功-->
<mainClass>com.fate.boot3.Boot3Application</mainClass>
<!-- 生成的exe文件名-->
<imageName>boot-test</imageName>
<buildArgs>
<buildArg>--verbose</buildArg>
</buildArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
3.其他的先不要配置,和springboot 2一样的写法,写个简单的测试方法;
4. 启动