4.7. 导出到 Red Hat build of Apache Camel for Spring Boot


您可以将 Camel CLI 集成 导出到 基于 Java 的传统项目,如 Spring Boot 或 Quarkus。在使用 Camel CLI 构建原型后,可能需要执行此操作,并且需要传统的基于 Java 的项目,并需要更多对 Java 编码的需求,或者使用 Spring Boot、Quarkus 或 vanilla Camel Main 的强大运行时。

4.7.1. 导出到 Red Hat build of Apache Camel for Spring Boot

命令会将 --runtime=spring-boot 导出您的当前 Camel CLI 文件导出到 基于 Maven 的 Spring Boot 项目,文件整理在 src/main/ 文件夹结构中。

例如,要使用 Maven groupId com.foo 和 artifactId acme 和版本 1.0-SNAPSHOT 将 导出到 Spring Boot,请运行:

camel export --runtime=spring-boot --gav=com.foo:acme:1.0-SNAPSHOT
注意

这将导出到 当前目录,这意味着文件被移到所需的文件夹结构中。

要导出到另一个目录,请运行:

camel export --runtime=spring-boot --gav=com.foo:acme:1.0-SNAPSHOT --directory=../myproject

当导出到 Spring Boot 时,pom.xmlbuild.gradle 中定义的 Camel 版本与 Camel CLI 使用的版本相同。但是,您可以指定不同的 Camel 版本,如下所示:

camel export --runtime=spring-boot --gav=com.foo:acme:1.0-SNAPSHOT --directory=../myproject --camel-spring-boot-version=4.0.0.redhat-00045
注意

如需了解更多详细信息,运行 camel export --help 命令来查看可能的选项。

4.7.2. 包括使用 Camel CLI 导出

当导出到 Spring Boot、Quarkus 或 Camel Main 时,Camel JBang CLI 不会包含在框中。要继续使用 Camel CLI (即 camel),您需要在 --deps 选项中添加 camel:cli-connector,如下所示:

camel export --runtime=quarkus --gav=com.foo:acme:1.0-SNAPSHOT --deps=camel:cli-connector --directory=../myproject

4.7.3. 配置导出

export 命令默认从 application.properties 文件加载配置,该文件用于导出特定参数,如选择运行时和 java 版本。

以下选项与 导出 相关,可在 application.properties 文件中配置:

选项Description

camel.jbang.runtime

runtime (spring-boot, quarkus, 或 camel-main)

camel.jbang.gav

Maven group:artifact:version

camel.jbang.dependencies

其他依赖项(使用逗号分隔多个依赖项)。请参阅 添加自定义 JAR 的更多详细信息。

camel.jbang.classpathFiles

要添加到 classpath 的其他文件(使用逗号分隔多个文件)。请参阅 添加自定义 JAR 的更多详细信息。

camel.jbang.javaVersion

Java 版本(11 或 17)

camel.jbang.kameletsVersion

Apache Camel Kamelets 版本

camel.jbang.localKameletDir

加载 Kamelets 的本地目录

camel.jbang.camelSpringBootVersion

用于 Spring Boot 的 Camel 版本

camel.jbang.springBootVersion

Spring Boot 版本

camel.jbang.quarkusGroupId

Quarkus Platform Maven groupId

camel.jbang.quarkusArtifactId

quarkus Platform Maven artifactId

camel.jbang.quarkusVersion

Quarkus Platform 版本

camel.jbang.mavenWrapper

在导出的项目中包含 Maven Wrapper 文件

camel.jbang.gradleWrapper

在导出的项目中包括 Gradle Wrapper 文件

camel.jbang.buildTool

使用构建工具(maven 或 gradle)

camel.jbang.repos

用于按需下载的额外 maven 存储库(使用逗号分隔多个存储库)

camel.jbang.mavenSettings

maven setting.xml 文件的可选位置,以配置服务器、存储库、镜像和代理。如果设置为 false,则不会使用默认的 ~/.m2/settings.xml。

camel.jbang.mavenSettingsSecurity

maven settings-security.xml 文件的可选位置来解密 settings.xml

camel.jbang.exportDir

导出项目的目录。

camel.jbang.platform-http.port

运行独立 Camel 时要使用的 HTTP 服务器端口,如启用 --console 时(默认为端口 8080)。

camel.jbang.console

运行独立 Camel 时,位于本地 HTTP 服务器上的 /q/dev 的开发人员控制台(默认为 8080)。

camel.jbang.health

运行独立 Camel 时,本地 HTTP 服务器上的 /q/health (默认为 8080)进行健康检查。

注意

这些是 export 命令中的选项。您可以使用 camel export --help 查看更多详细信息和默认值。

4.7.4. Configuration

Camel CLI config 命令用于存储和使用用户配置。这消除了每次指定 CLI 选项的需求。例如,要运行不同的 Camel 版本,请使用:

camel run * --camel-version=4.0.0.redhat-00036

camel-version 可以添加到用户配置中,例如:

camel config set camel-version=4.0.0.redhat-00036

run 命令使用用户配置:

camel run *

用户配置文件存储在 ~/.camel-jbang-user.properties 中。

4.7.4.1. 设置和取消设置配置

每个 Camel CLI 选项都添加到用户配置中。例如,要导出一个简单的项目,例如:

camel init foo.yaml
camel config set gav=com.foo:acme:1.0-SNAPSHOT
camel config set runtime=spring-boot
camel config set deps=org.apache.camel.springboot:camel-timer-starter
camel config set camel-spring-boot-version=4.0.0.redhat-00045
camel config set additional-properties=openshift-maven-plugin-version=1.13.1.redhat-00057

camel export

使用以下命令取消设置用户配置密钥:

camel config unset camel-spring-boot-version

4.7.4.2. 列出和获取配置

使用以下命令列出用户配置密钥:

camel config list

以上上述配置的输出如下:

runtime = spring-boot
deps = org.apache.camel.springboot:camel-timer-starter
gav = com.foo:acme:1.0-SNAPSHOT

要获取给定键的值,请使用 get 命令。

camel config get gav

com.foo:acme:1.0-SNAPSHOT

4.7.4.3. 占位符替换

用户配置值可作为占位符使用命令行属性替换,例如:

camel config set repos=https://maven.repository.redhat.com/ga

camel run 'Test.java' --logging-level=info --repos=#repos,https://packages.atlassian.com/maven-external

在本例中,因为 repos 在用户配置(config set)中设置,而 camel run 命令会声明占位符 #repos,因此 camel run 将替换占位符,以便在执行过程中使用这两个存储库。请注意,要引用配置值,语法为 #optionName eg #repos。

注意

占位符替换仅适用于给定 Camel 命令具有的每个选项。您可以查看命令使用 camel run --help 的所有选项。

4.7.5. 故障排除

使用 JBang 时,它将状态存储在 ~/.jbang 目录中。这也是 JBang 存储下载的 JAR 的位置。Camel CLI 还在运行时下载所需的依赖项。但是,这些依赖项下载到您的本地 Maven 存储库 ~/.m2 中。因此,当您在运行 Camel CLI 时对一些问题(如过时的 JAR)进行故障排除时,请尝试删除这些目录或部分目录。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.