当前位置: 首页 > 知识库问答 >
问题:

Quarkus本机映像生成失败

叶坚
2023-03-14

当我建立一个原生形象时,我面临着一个反思的问题

通用域名格式。神谕svm。主持。代替DeletedElementException:不支持的java字段。朗,同学们。newInstanceCallerCache是可访问的:此元素的声明类已被替换,但替换类中不存在此元素

我该怎么修?我的环境GraalVM 20和Zulu OpenJdk11

我的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>

    <groupId>org.example</groupId>
    <artifactId>qd</artifactId>
    <version>0.0.1</version>

    <properties>
        <quarkus.version>1.3.0.Final</quarkus.version>
        <surefire.version>2.22.2</surefire.version>
        <mybatis.version>3.5.4</mybatis.version>
        <mybatis.cdi.version>1.1.1</mybatis.cdi.version>
        <kafka.version>2.4.1</kafka.version>
        <resteasy.version>4.5.3.Final</resteasy.version>
        <mongo.version>3.12.2</mongo.version>
        <testcontainer.version>1.13.0</testcontainer.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>io.quarkus</groupId>
                <artifactId>quarkus-bom</artifactId>
                <version>${quarkus.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-resteasy</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-arc</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-resteasy-jackson</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-flyway</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-agroal</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-config-yaml</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-smallrye-health</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-jdbc-postgresql</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-smallrye-reactive-messaging-kafka</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-smallrye-openapi</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-resteasy-jsonb</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-resteasy-mutiny</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-mongodb-client</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-smallrye-jwt</artifactId>
        </dependency>

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-cdi</artifactId>
            <version>${mybatis.cdi.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
            <version>${kafka.version}</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt -->
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
            <version>0.9.1</version>
        </dependency>

        <!-- to fix bug with reactive -->
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-context-propagation</artifactId>
            <version>${resteasy.version}</version>
        </dependency>

        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongo-java-driver</artifactId>
            <version>${mongo.version}</version>
        </dependency>

        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-junit5</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.rest-assured</groupId>
            <artifactId>rest-assured</artifactId>
            <scope>test</scope>
        </dependency>

    </dependencies>


    <build>
        <plugins>
            <plugin>
                <groupId>io.quarkus</groupId>
                <artifactId>quarkus-maven-plugin</artifactId>
                <version>${quarkus.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <release>
                        11
                    </release>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${surefire.version}</version>
                <configuration>
                    <systemProperties>
                        <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
                    </systemProperties>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.jboss.jandex</groupId>
                <artifactId>jandex-maven-plugin</artifactId>
                <version>1.0.7</version>
                <executions>
                    <execution>
                        <id>make-index</id>
                        <goals>
                            <goal>jandex</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>native</id>
            <properties>
                <quarkus.package.type>native</quarkus.package.type>
            </properties>
        </profile>
    </profiles>
</project>

共有1个答案

段恩
2023-03-14

如评论中所述,删除非quarkus依赖项会有所帮助。

您的依赖项中还有一些库具有quarkus等效项,例如kafka client。尝试用quarkus等效物替换这些。

这里的链接到上述库:https://mvnrepository.com/artifact/io.quarkus/quarkus-kafka-client

很难说是哪个依赖项导致了问题,但我建议用可能的替代,如果问题仍然存在,你可以尝试删除其余的依赖项。

 类似资料:
  • 我正在尝试使用GraalVM构建本机Quarkus映像,但遇到以下构建失败错误: 这是我第一次与GraalVM合作,所以我有点困惑。 以下是基本信息:Java版本17 Graavl VM版本graalvm-ce-javaV-22.1.0 我按照提供的步骤:https://stackoverflow.com/a/65837409/7584240和https://github.com/graalvm/

  • 在使用amazon sdk的实现与amazon Rekognion和amazon Understand工具进行交互后,它在开发人员(mvn compile quarkus:dev)上运行得非常好,但在尝试进行REST Web服务的本机编译时崩溃,该服务是使用以下技术开发的; GraalVM CE 22.0.0.2。 Quarkus框架(Quarkus bom.io.Quarkus.platform

  • 我有以下简化设置: 4)应用程序.属性 当我使用本机maven配置文件(mvn clean package-pnative)运行该文件时,我得到: 使用--report-unsupport-elements-at-runtime运行它也没有太大帮助。当我删除MyEntity类时,它在Mac+GRAALVM-CE-Java11-20.0.0上成功地编译为本机可执行文件

  • 我已经成功地用Quarkus/Graal构建了一个本机映像,我可以在终端中运行它(还没有容器)。但是,它会因“分段错误(堆芯转储)”消息而崩溃。如何获得有关错误的更多信息?是否有标志要传递给本机可执行文件或在构建映像时传递? 我使用的是GraalVM版本20.2.0(Java版本11.0.8) 任何帮助都是非常感激的。 谢谢

  • 我想通过Dockerfile部署quarkus builder映像。我们支持一个代理,我将所有linux代理设置都设置为大写和小写。 如果我运行Dockerfile,我会在gu命令中收到一条错误消息,以安装本机映像组件。以下是Dockerfile中的完整运行语句: 它返回一条错误消息,其中包含我必须设置一个http_proxy。在运行语句之前,我启动了一个prencv语句,因为我可以看到http_

  • 在我的项目的根目录中,我发出了以下命令来创建一个特定于我的操作系统的本机可执行文件。有关详细信息,请参阅以下指南 这是输出。 本机映像生成失败,因为构建刚刚挂起。 我选择在主机上安装Graal VM,并选择非基于容器的方法,如下所示。 > ❯ brew安装——cask GRALVM/tap/GRALVM-ce-lts-java11 将Graal VM添加到JEnv管理的Java版本 ❯ jenv