基于来自this SO question, answered for Maven builds的以下Maven配置,我需要等价的代码来进行Gradle设置。环顾四周,我找不到适用于Gradle的设置。
另一个问题的提要:本质上,外部项目的类没有索引,因此Quarkus可以使用它们。下面的解决方案重建索引并允许访问类。
其他问题的代码:
<build>
<plugins>
<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>
也...经过进一步的挖掘,看来作品here (github merge request中已经有修复程序。在撰写本文时,它已合并,但看起来好像不是发行版的一部分。如果这种情况有所改变,并且可以解决问题,将进行跟进。
随着0.18.0
的发布,我仍然遇到问题,但是我相信我离问题越来越近了。我仍然收到以下(非常相似)错误:
2019-06-27 19:45:52,741 INFO [io.qua.dep.QuarkusAugmentor] (main) Beginning quarkus augmentation
2019-06-27 19:45:53,241 WARN [io.qua.dep.ste.ReflectiveHierarchyStep] (build-8) Unable to properly register the hierarchy of the following classes for reflection as they are not in the Jandex index:
- com.ebp.reasonadle.shared.pojos.user.User
Consider adding them to the index either by creating a Jandex index for your dependency via the Maven plugin, an empty META-INF/beans.xml or quarkus.index-dependency properties.");.
这是一个空的beans.xml
,目前我不确定如何在application.properties中尝试输入。
在其他问题中建议的条目:
quarkus.index-dependency.<name>.group-id=
quarkus.index-dependency.<name>.artifact-id=
quarkus.index-dependency.<name>.classifier=(this one is optional)
我对占位符<name>
应该是什么感到困惑。班级名称? Gradle项目名称?我还认为空作业是故意的吗?
我的整个gradle项目的结构:
| Main
| \ (API folder)
| | User API (Quarkus Project, pulls in pojos)
| \ (Common resource folder)
| | Common pojo's (Java library, done with Gradle's plugin)
对于Quarkus开发人员来说,我认为这不是必须的。在项目之间共享pojo很普遍,我称之为良好的设计。也许是为了说明如何进行这项工作而快速入门?
答案 0 :(得分:0)
此问题最终由https://github.com/quarkusio/quarkus/issues/6635
解决 1.5.0
复发了,但是很快就解决了。
对我来说,似乎META-INF
文件夹中不需要其他任何内容,也不需要其他子模块的手动/显式索引。