ユーザーが独自のJavaコードを記述/実行し、コンパイルされたjarからのインポートを使用できるJavaアプリケーションがあります。つまり、ユーザーがそれを記述し、アプリケーションによってコンパイルおよび実行されます。また、このコードを (使用している他のさまざまな情報と共に) 保存することもできます。現在、これは人間が判読できる xml ファイルに保存されています。
これらの保存 xml ファイルを IDE (主に Intellij) で使用できるようにしたいので、ユーザーが IDE でコンパイルされた jar 内のものを変更した場合、これらの変更は保存 xml ファイルでも取得できます。
たとえば、保存ファイルがコンパイルされた jar のクラスを使用した場合、次のインポートが含まれている可能性があります。
import com.company.project.package.subpackage.MyClass;
クラスが移動されたため、インポートは次のようになったとしましょう。
import com.company.project.package.subpackage.subsub.MyClass;
...これにより、そのクラスとインポートを使用するすべての保存 xml ファイルが変更されます - IDE がコンパイルされたプロジェクトの他のすべての用途に対して行うのと同じです。
(これと他の例は、コンパイルされた jar が常に開発中であり、前述のアプリケーションを使用して使用されているために発生します。)
現時点では、保存 xml ファイルを IDE のサブプロジェクトに追加する場合、ユーザーは保存ファイルを手動で編集でき、おそらく「検索/置換」または「テキストでの使用を検索」機能を利用できます。これは何もないよりはましですが、それでもかなり複雑なプロセスです。また、保存ファイル内のコードがコンパイル済みプロジェクト内のコードと一致しているかどうかもチェックされません。
私が検討しているアプローチの 1 つは、保存した xml ファイルを解凍し、Java コードを Java ファイルに書き込み、それらの Java ファイルをコンパイル (および実行/テスト) するスクリプトまたはテスト クラスです。
さらなるステップとして、maven プラグイン (ビルド サイクルに maven を使用) または ant スクリプト (ant にはまだ用途があります...) を記述して、これをビルド プロセスの一部にすることができます。サブプロジェクト内のすべての保存 xml ファイルもコンパイルすることを保証せずに、プロジェクトをコンパイルします。
- これは合理的なアプローチのように思えますか?
- 誰でも提案できる代替アプローチはありますか?