我有一个自己的骆驼组件/端点,我在Spring Boot应用程序中的许多路由中成功使用了它。我正在尝试迁移到骆驼夸库,并在我的应用程序中使用相同的路由。
在我的camel quarkus应用程序中,仅添加相关依赖项是不可能使用此组件/端点的:quarkus无法像Spring Boot那样发现此组件/端点。
显而易见的解决方案是编写一个quarkus扩展,该扩展使用camel组件:quakus扩展,如jdbc、file、sql等,都是使用相应的camel组件实现的。
如果我们查看其运行时模块的sql的pom-xml,我们会发现它使用了等效的camel-sql组件:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-sql</artifactId>
</dependency>
我的问题是,即使是按项目构建(我使用的是eclipse(,quarkus仍然没有发现组件/端点,quakus显示它已经安装了我的扩展。我在网上搜索了很长时间,但没有找到任何有用的来源。
使用这个依赖关系。所有的夸库依赖性都是从组id开始的,是org.apache.camel.夸库和人工制品camelquarkus xxx
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-sql</artifactId>
</dependency>
用于postgresql
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-jdbc-postgresql</artifactId>
</dependency>
显而易见的解决方案是不编写额外的扩展。Quarkus Runtime发现模块或第三方依赖项中的类当且仅当:
- 第三方依赖项在主机项目中进行索引:通过将以下条目添加到.properties文件:
quarkus.index依赖项..组id=<组id>
quarkus.index依赖项..artifact id=<工件id>
或.yaml文件:
quarkus:
index-dependency:
<name>:
group-id: <group-id>
artifact-id: <artifact-id>
其中<组id>并且<工件id>是第三方的。
- jandex-maven插件存在于该模块或第三方依赖项的pom.xml中
- 下存在一个空的beans.xmlsrc/main/resorces/META-INF的这个模块/依赖项
我在这篇文章中找到了我的问题的答案。