camel maven 插件
骆驼 Maven 插件支持以下目标
-
camel:run - 运行您的 Camel 应用程序 -
camel:dev - 以开发者模式运行 Camel 应用程序 -
camel:debug - 在调试模式下运行 Camel 应用程序 -
camel:prepare-fatjar - 准备将 Camel 应用程序打包为 fat-jar(如通过 maven-assembly-plugin 打包)
camel:run
Camel Maven 插件的 camel:run
目标用于在 Maven 分支 JVM 中运行 Camel Spring 配置。Spring 示例(Spring Example)是一个很好的入门应用示例。
cd examples/camel-example-spring mvn camel:run
这样,无需编写 main(...) 方法,就能非常容易地启动和测试路由规则;还能创建多个 jar 来托管不同的路由规则集,并轻松地对它们进行独立测试。
插件的工作原理是编译 maven 项目中的源代码,然后使用类路径 META-INF/spring/*.xml
中的 XML 配置文件启动 Spring ApplicationContext。
如果您想更快地启动骆驼路由,可以尝试使用 camel:embedded
代替。
选项
maven 插件运行目标支持以下选项,这些选项可通过命令行配置(使用 -D
语法),或在 pom.xml
文件的 <configuration>
标记中定义。
参数 | 默认值 | 说明 |
会期 | -1 |
|
闲置时间 | -1 |
|
最大持续时间 | -1 |
|
日志路径 | 错误 |
|
日志级别 | OFF |
|
概况 |
|
记录类路径
您可以配置是否在执行 camel:run
时记录 classpath。您可以使用
<plugin>
<groupId>org.apache.camel</groupId>
<artifactId>camel-maven-plugin</artifactId>
<configuration>
<logClasspath>true</logClasspath>
</configuration>
</plugin>
使用内置日志
如果想快速将日志记录到控制台,可以如图所示设置日志记录级别,使用内置日志记录:
<plugin>
<groupId>org.apache.camel</groupId>
<artifactId>camel-maven-plugin</artifactId>
<configuration>
<loggingLevel>INFO</loggingLevel>
</configuration>
</plugin>
该选项以控制台日志方式运行应用程序,颜色与 Spring Boot 日志类似。默认关闭此选项,以使用项目中配置的日志系统。
使用内置日志的初衷是,有时你不想费力设置日志,只想快速、简单地将日志记录到控制台,而且看起来还不错。
camel:dev
camel:dev
是 camel:run
的扩展,用于在开发者模式下运行 Camel 应用程序。在该模式下,Camel 将热加载位于 src/main/resources
目录中的 DSL 路由(xml、yaml 和 java)。
选项
maven 插件开发目标支持以下选项,这些选项可通过命令行配置(使用 -D
语法),或在 pom.xml
文件的 <configuration>
标记中定义。
参数 | 默认值 | 说明 |
路由目录 | src/main/resources |
|
会期 | -1 |
|
闲置时间 | -1 |
|
最大持续时间 | -1 |
|
日志路径 | 错误 |
|
日志级别 | OFF |
|
概况 | dev |
|
camel:prepare-fatjar
Camel Maven 插件的 camel:prepare-fatjar
目标用于准备将 Camel 应用程序打包为胖 jar。该目标会扫描 Maven 依赖关系以发现 Camel JAR,并提取其中是否包含类型转换器,然后将其合并为一个 uber 文件,保存在 target/classes/META-INF/services/org/apache/camel/UberTypeConverterLoader
中。.
该 uber 载入器文件包含 Camel 应用程序在运行时使用的所有组合类型转换器。它们被合并到这个单一文件中。
这是必要的,否则胖 jar maven 插件(如 maven-assembly-plugin 或 maven-shade-plugin)会导致 TypeConverterLoader
文件在组装的 JAR 中被覆盖,从而导致 Camel 无法加载所有类型转换器。
UberTypeConverterLoader
确保加载所有类型转换器,因为该文件包含所有已知的类型转换器文件。
要使用此目标,可在 Camel 应用程序的 pom.xml
文件中添加以下内容:
<build>
<plugins>
<plugin>
<groupId>org.apache.camel</groupId>
<artifactId>camel-maven-plugin</artifactId>
<version>${camel.version}</version>
<executions>
<execution>
<goals>
<goal>prepare-fatjar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
例如,在使用 maven-assembly-plugin
时,您可以按以下步骤操作。切记在 com.foo.NameOfMainClass
处指定主类的类名:
<build>
<plugins>
<plugin>
<groupId>org.apache.camel</groupId>
<artifactId>camel-maven-plugin</artifactId>
<version>${camel.version}</version>
<executions>
<execution>
<goals>
<goal>prepare-fatjar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.foo.NameOfMainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>