64.2. コンパイル
csimple 言語は、通常の Java ソースコードに解析され、他のすべてのソースコードと一緒にコンパイルされるか、camel-csimple-joor モジュールを介してブートストラップ中に 1 回コンパイルすることもできます。
csimple をコンパイルするには 2 つの方法があります
-
ビルド時に
camel-csimple-maven-plugin生成ソースコードを使用します。 -
Camel のブートストラップ中にランタイムインメモリーコンパイルを行う
camel-csimple-joorを使用します。
64.2.1. camel-csimple-maven-plugin の使用 リンクのコピーリンクがクリップボードにコピーされました!
camel-csimple-maven-plugin Maven プラグインは、ソースコードからすべての csimple スクリプトを検出するために使用され、src/generated/java フォルダーにソースコードが自動生成され、他のすべてのソースと共にコンパイルされます。
Maven プラグインは、.java および .xml ファイル (Java および XML DSL) のソースコードスキャンを実行します。スキャナーは特定のコードパターンの検出に制限をかけており、csimple スクリプトが異常または、まれな方法で使用されている場合に、csimple スクリプトの一部を検出できない可能性があります。
camel-csimple-joor を使用したランタイムコンパイルには、この制限はありません。
利点として、すべての csimple スクリプトが通常の Java コンパイラーを使用してコンパイルされるため、すべてがアプリケーションの JAR ファイルに .class ファイルとしてそのまま含まれており、実行時に追加の依存関係が必要ないことが挙げられます。
camel-csimple-maven-plugin を使用するには、次のように pom.xml ファイルに追加する必要があります。
そして、build-helper-maven-plugin Maven プラグインを追加して、src/generated を Java コンパイラーのソースフォルダーのリストに追加して、生成されたソースコードがコンパイルされ、アプリケーション JAR ファイルに含まれるようにする必要があります。
Maven プラグインを使用する Camel Examples の camel-example-csimple の 例を参照してください。
64.2.2. camel-csimple-joor の使用 リンクのコピーリンクがクリップボードにコピーされました!
jOOR ライブラリーは Java コンパイラーと統合され、Java コードのランタイムコンパイルを実行します。
camel-simple-joor を使用するときにサポートされるランタイムは、Java スタンドアロン、Spring Boot、Camel Quarkus、およびその他のマイクロサービスランタイムを対象としています。OSGi、Camel Karaf、またはあらゆる種類の Java Application Server ランタイムではサポートされていません。
jOOR は、ファット jar パッケージ (https://github.com/jOOQ/jOOR/issues/69) を使用した Spring Boot でのランタイムコンパイルをサポートしていません。展開形式のクラスパスで動作します。
camel-simple-joor を使用するには、依存関係としてクラスパスに追加するだけです。
<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>
pom.xml ファイルに Maven プラグインを追加する必要はありません。
jOOR コンパイラーを使用する Camel Examples の camel-example-csimple-joor の例を参照してください。