80.2. コンパイル
csimple 言語は、通常の Java ソースコードに解析され、他のすべてのソースコードと一緒にコンパイルされるか、camel-csimple-joor
モジュールを介してブートストラップ中に 1 回コンパイルすることもできます。
csimple をコンパイルするには 2 つの方法があります
-
ビルド時に
camel-csimple-maven-plugin
生成ソースコードを使用します。 -
Camel のブートストラップ中にランタイムインメモリーコンパイルを行う
camel-csimple-joor
を使用します。
80.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 の
例を参照してください。
80.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
の例を参照してください。