1

Clojure で Java ライブラリを使用しています。Java ライブラリでは、コンパイル時にのみオブジェクトを作成する必要があります。アプリが uberjar (leiningen で作成) を介してデプロイされる場合、この構成オブジェクトはエラーなしで適切に作成できません。

マクロを使用して、コンパイル時のみにオブジェクトを作成できます。問題は、シリアライズできないことです。アプリがuberjar経由で実行されているときに、このオブジェクトをjvmで使用できるようにするにはどうすればよいですか? アトムは、jar を実行している新しい jvm インスタンスのロード時または実行時にリセットされるため、オブジェクトをアトムに配置しても機能しません。コンパイル時の jvm には、このオブジェクトを aot コンパイル済みクラスの 1 つに配置する方法が必要です。(gen-class) は、初期化子を介して実行時にしか状態を初期化できないため、機能していないようです。

4

0 に答える 0