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