maven 在多模块项目中创建spring Boot 本地镜像

f2uvfpb9  于 2022-12-26  发布在  Maven
关注(0)|答案(1)|浏览(405)

我尝试到建立一个本机映像与graalvm和spring Boot .我的项目有几个模块.当我尝试到建立本机映像我得到这个错误:
第一个月
当我在父pom文件的属性中定义mainClass路径(API)时,我得到了这个错误:Error: Main entry point class 'org.example.api.Application' neither found on the classpath nor on the modulepath.如何定义包含graalvm主类的模块?

mwg9r5ms

mwg9r5ms1#

在父pom(声明所有模块的pom)中使用以下语法

<modules>
    <module>module1</module>
    <module>module2</module>
    <module>module3</module>
</modules>

使用最新的 Spring Boot BOM作为父项

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.0.1</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

然后覆盖本地配置文件

<profiles>
    <profile>
        <id>native</id>
        <build>
            <pluginManagement>
                <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>
                        <executions>
                            <execution>
                                <id>build-image</id>
                                <goals>
                                    <goal>compile-no-fork</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </pluginManagement>
        </build>
    </profile>
</profiles>

此时,在模块中(需要本机构建的地方),可以设置以下构建配置:

<build>
    <plugins>
        <plugin>
            <groupId>org.graalvm.buildtools</groupId>
            <artifactId>native-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

此时,您将能够使用mvn -Pnative clean package编译项目

相关问题