24.3. 编译
Csimple 语言被解析为常规 Java 源代码,并与所有其他源代码一起编译,或者在通过 camel-csimple-joor 模块 bootstrap 期间编译一次。
编译简单的方法有两种
-
在构建时使用
camel-csimple-maven-plugin生成源代码。 -
使用
camel-csimple-joor,它在 Camel bootstrap 过程中执行运行时内存编译。
24.3.1. 使用 camel-csimple-maven-plugin 复制链接链接已复制到粘贴板!
camel-csimple-maven-plugin Maven 插件用于发现来自源代码的所有 csimple 脚本,然后在 src/generated/java 文件夹中自动生成源代码,然后编译到所有其他源。
maven 插件将对 .java 和 .xml 文件(Java 和 XML DSL)进行源代码扫描。扫描程序限制检测某些代码模式,如果它们以异常/方式使用,则可能会错过发现一些简单脚本。
使用 camel-csimple-joor 的运行时编译没有这个限制。
好处是所有 csimple 脚本都使用常规 Java 编译器编译,因此所有内容都作为应用程序 JAR 文件中的 .class 文件包含在框中,在运行时不需要额外的依赖项。
要使用 camel-csimple-maven-plugin,您需要将其添加到 pom.xml 文件中,如下所示:
然后,您还必须添加 build-helper-maven-plugin Maven 插件,将 src/generated 包含在 Java 编译器的源文件夹列表中,以确保生成的源代码已编译并包含在应用 JAR 文件中。
24.3.2. 使用 camel-csimple-joor 复制链接链接已复制到粘贴板!
jOOR 库与 Java 编译器集成,并执行 Java 代码运行时编译。
使用 camel-simple-joor 时支持的运行时适用于 Java 独立、Spring Boot、Camel Quarkus 和其他微服务运行时。在 OSGi、Camel Karaf 或任何类型的 Java Application Server 运行时中不支持它。
joor 不支持使用 fat jar 打包(https://github.com/jOOQ/jOOR/issues/69)的运行时编译,它可用于 exploded 类路径。
要使用 camel-simple-joor,只需将其作为依赖项添加到 classpath 中:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-csimple-joor</artifactId>
<version>{CamelSBProjectVersion}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-csimple-joor</artifactId>
<version>{CamelSBProjectVersion}</version>
</dependency>
不需要将 Maven 插件添加到 pom.xml 文件中。
请参阅 camel-example-csimple-joor 示例(Camel Examples),它使用 jOOR 编译器。