1

ユーザーが独自の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 ファイルもコンパイルすることを保証せずに、プロジェクトをコンパイルします。

  • これは合理的なアプローチのように思えますか?
  • 誰でも提案できる代替アプローチはありますか?
4

1 に答える 1

3

..Javaファイルとして保存することは、私が探している解決策ではありません。

1 つ (またはそれ以上) の XML ファイルと、必要なソース (パッケージに応じたパス) を含む Zip として保存します。他のファイル、マニフェスト、ヘルプ ファイルなどを簡単に含めることもできます。

これには多くの利点があります。

  • ソース ファイルとインクルード ファイルを XML とは異なるエンコーディングにすることができます。
  • プロジェクトの必要なすべての部分を 1 つのファイルに統合し、ある形式を別の形式に合わせるために「フープをジャンプ」する必要はありません。
  • データに応じてさまざまな圧縮レベルを使用できます (たとえば、テキスト/XML は適切に圧縮されますが、シリアル化された画像は圧縮されません)。
于 2012-10-16T08:56:12.870 に答える