0

我有一个自己的骆驼组件/端点,我在Spring Boot App的许多路线中成功使用了它。我正在尝试迁移到camel quarkus并在我的应用程序中使用相同的路由。

通过简单地添加相关依赖项,无法在我的camel-quarkus 应用程序中使用此组件/端点: quarkus无法像Spring Boot那样发现此组件/端点

显而易见的解决方案是编写一个使用这个camel-component的quarkus扩展:使用相应的camel-components实现jdbcfilesqlquarkus扩展。

如果我们查看其运行时模块的 sql 的 pom-xml,我们会发现它使用了等效的camel-sql 组件

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-sql</artifactId>
</dependency>

我的问题是,即使按项目构建(我正在使用 eclipse),quarkus 仍然没有发现组件/端点,quarkus 显示它已经安装了我的扩展。我在互联网上搜索了很长时间,但没有找到任何有用的来源。

4

2 回答 2

0

显而易见的解决方案是不要编写额外的扩展。Quarkus-Runtime 发现模块或第三方依赖项中的类当且仅当:

  1. 第三方依赖项在宿主项目中建立索引:通过将以下条目添加到.properties文件:

quarkus.index-dependency..group-id=<group-id>
quarkus.index-dependency..artifact-id=<artifact-id>

.yaml文件:

quarkus:  
   index-dependency:
     <name>:
        group-id: <group-id>
        artifact-id: <artifact-id> 

其中 <group-id> 和 <artifact-id> 是第三方的。

  1. jandex -maven-plugin存在于该模块或第三方依赖的pom.xml中
  2. 此模块/依赖项的src/main/resorces/META-INF下存在 一个空beans.xml

我在这篇文章中找到了我的问题的答案。

于 2021-07-07T08:16:53.870 回答
0

使用此依赖项。所有 quarkus 依赖项都以组 id 开头,即 org.apache.camel.quarkus 和 artifact camel-quarkus-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>
于 2021-07-01T14:28:50.200 回答