Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate Quarkus无法找到Jandex索引的第三方分类,即使使用Jandex插件和空META-INF/beans.xml_Hibernate_Orm_Quarkus - Fatal编程技术网

Hibernate Quarkus无法找到Jandex索引的第三方分类,即使使用Jandex插件和空META-INF/beans.xml

Hibernate Quarkus无法找到Jandex索引的第三方分类,即使使用Jandex插件和空META-INF/beans.xml,hibernate,orm,quarkus,Hibernate,Orm,Quarkus,维克托来自智利 我有一个quarkus应用程序,我想将quarkus hibernate orm用于Oracle数据库,但我的实体类位于第三方jar中,因此我只将依赖项放在quarkus hibernate orm依赖项下面的pom(实体类)中,当然还有其他quarkus依赖项 我试过这个: jandex插件和beans.xml解决方案对我不起作用(我没有尝试第三个选项,但似乎对其他人起作用——前两个已经尝试过的选项) 使用quarkus 0.20.0和0.19.1进行测试,并显示相同的错误

维克托来自智利

我有一个quarkus应用程序,我想将quarkus hibernate orm用于Oracle数据库,但我的实体类位于第三方jar中,因此我只将依赖项放在quarkus hibernate orm依赖项下面的pom(实体类)中,当然还有其他quarkus依赖项

我试过这个:

jandex插件和beans.xml解决方案对我不起作用(我没有尝试第三个选项,但似乎对其他人起作用——前两个已经尝试过的选项)

使用quarkus 0.20.0和0.19.1进行测试,并显示相同的错误

pom.xml:

<?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>cl.myproj</groupId>
    <artifactId>reposirorio-myproj</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <quarkus.version>0.19.1</quarkus.version>
        <surefire-plugin.version>2.22.1</surefire-plugin.version>
        <compiler-plugin.version>3.8.0</compiler-plugin.version>
        <docker-plugin.version>0.28.0</docker-plugin.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

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

    <dependencies>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-hibernate-orm</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-agroal</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-resteasy</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-resteasy-jsonb</artifactId>
        </dependency>


        <!-- Testing: -->
        <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>

        <dependency>
            <groupId>org.jboss.jandex</groupId>
            <artifactId>jandex-maven-plugin</artifactId>
            <version>1.0.6</version>
        </dependency>


        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc7</artifactId>
            <version>12.1.0.2.0</version>
        </dependency>
        <dependency>
            <groupId>cl.entities</groupId>
            <artifactId>libMyEntities</artifactId>
            <version>1.0.0</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${compiler-plugin.version}</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <!-- the parameters=true option is critical so that RESTEasy works fine -->
                    <parameters>true</parameters>
                </configuration>
            </plugin>
            <plugin>
                <!-- you need this specific version to integrate with the other build helpers -->
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${surefire-plugin.version}</version>
                <configuration>
                    <systemProperties>
                        <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
                    </systemProperties>
                </configuration>
            </plugin>
            <plugin>
                <!-- This is what injects the magic Quarkus bytecode -->
                <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.jboss.jandex</groupId>
                <artifactId>jandex-maven-plugin</artifactId>
                <version>1.0.6</version>
                <executions>
                    <execution>
                        <id>make-index</id>
                        <goals>
                            <goal>jandex</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <!-- Optionally activate this profile to compile the demo into native! -->
            <id>native</id>
            <activation>
                <property>
                    <name>native</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>io.quarkus</groupId>
                        <artifactId>quarkus-maven-plugin</artifactId>
                        <version>${quarkus.version}</version>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>native-image</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-failsafe-plugin</artifactId>
                        <version>${surefire-plugin.version}</version>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>integration-test</goal>
                                    <goal>verify</goal>
                                </goals>
                                <configuration>
                                    <systemProperties>
                                        <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
                                    </systemProperties>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>eclipse</id>
            <activation>
                <property>
                    <!-- This is a trick to have the profile automatically activated by Eclipse -->
                    <name>m2e.version</name>
                </property>
            </activation>
            <build>
                <pluginManagement>
                    <plugins>
                        <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
                        <plugin>
                            <groupId>org.eclipse.m2e</groupId>
                            <artifactId>lifecycle-mapping</artifactId>
                            <version>1.0.0</version>
                            <configuration>
                                <lifecycleMappingMetadata>
                                    <pluginExecutions>
                                        <pluginExecution>
                                            <pluginExecutionFilter>
                                                <groupId>io.fabric8</groupId>
                                                <artifactId>
                                                    docker-maven-plugin
                                                </artifactId>
                                                <versionRange>
                                                    [0.28.0,)
                                                </versionRange>
                                                <goals>
                                                    <goal>start</goal>
                                                    <goal>stop</goal>
                                                </goals>
                                            </pluginExecutionFilter>
                                            <action>
                                                <ignore></ignore>
                                            </action>
                                        </pluginExecution>
                                    </pluginExecutions>
                                </lifecycleMappingMetadata>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>
    </profiles>
</project>
我成功地建造了


非常感谢。

嗯,我不太确定Spring数据是否适用于Quarkus。我们有自己的层称为Panache

要解决您的错误,您需要为包含上述两个类的Spring数据工件创建一个索引


您可以使用我在这里的回答中描述的
quarkus.index dependency
方法来完成此操作。

在知道问题不完全正确的情况下创建此响应

我知道这不是hibernate orm错误或“类似jpa的问题”。在这种情况下,错误总是:“找不到spring类”:

而不是“无法启动hibernate库等…”所以我的问题的正确答案是,使用本页的方法:如何在Quarkus中为外部模块中的类创建Jandex索引。(正如我们的合作伙伴纪尧姆所说!)但是,将Spring类放入索引中。(Spring是我的项目的实体依赖项的依赖项。)

刚刚配置了我的application.properties,如下所示:

quarkus.index dependency.springd.group id=org.springframework.data quarkus.index dependency.springd.artifact id=spring数据共享

结果是:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  4.878 s
[INFO] Finished at: 2019-08-02T16:02:14-04:00
[INFO] ------------------------------------------------------------------------
因为我刚刚在mvn repo搜索中的jar(org.springframework.data)中找到了这些类,所以请按预期工作

非常感谢

[ERROR]     - org.springframework.data.domain.Auditable
[ERROR]     - org.springframework.data.domain.Persistable
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  4.878 s
[INFO] Finished at: 2019-08-02T16:02:14-04:00
[INFO] ------------------------------------------------------------------------