Quarkus、Gradle 和外部依赖项;来自外部依赖的对象仅在本机模式下不可序列化

Quarkus, Gradle, and External dependencies; Objects from external dependency not serializable only in native mode

我有一个 quarkus 应用程序,https://github.com/Epic-Breakfast-Productions/OpenQuarterMaster/tree/main/software/open-qm-base-station 它依赖于我在本地制作和构建的依赖项(它在本地 maven 存储库中可用)。我已经采取必要的步骤使它与 Quarkus(空 beans.xml 文件)一起工作,并且在常规 jar 模式下运行时工作正常。

但是,当我在本机模式下运行时,代码无法根据依赖项生成对象的正面或反面,通常会在 de/serialization 发生时抛出异常:

Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class com.ebp.openQuarterMaster.lib.core.rest.ErrorMessage and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)

我有测试 运行 证实了这一点(并在实践中看到);当 运行 在 dev/jar 模式下一切正常。原生是不行的。关于如何引入非 jandex 依赖项,我有什么遗漏吗?我以前尝试过 jandex 插件,但从未见过它们真正起作用。

要明确:

./gradlew test -> 工作正常

./gradlew testNative -> 失败

如果您自己进行测试,您需要先在本地发布依赖项,然后再尝试使用 ./gradlew publishToMavenLocal 的 quarkus 应用程序:https://github.com/Epic-Breakfast-Productions/OpenQuarterMaster/tree/main/software/libs/open-qm-core

Quarkus Native 不包含外部依赖项。 您需要自己包含