Shared Utilities プロジェクト、2 つの独立した SDK プロジェクト (それぞれが Utilities を参照)、およびいくつかのプラグイン プロジェクトがあり、それぞれがこれらの SDK の 1 つだけを使用しています。Shared Utilities には、前述のプラグインから見えるようにする必要があるすべて静的なクラスがいくつか含まれていますが、残りのクラスはプラグインから隠したいと考えています。
問題を解決するにはどうすればよいですか?ビルド プロセスをできる限りシンプルにし (ビルドには Ant を使用しています)、依存関係を最小限に抑えたいと考えています。
これまでに検討したオプションと、各アプローチを破棄した理由は次のとおりです。
- プラグインで利用できるようになる 2 番目の Shared Utilities プロジェクトは、展開を難しくします。
- Shared Utils プロジェクトから 2 つの個別の .jar-s をビルドします。1 つは完全に静的なユーティリティのみを含み、もう 1 つは非表示にする必要があるものすべてを含みます。これにより、ビルドがより複雑になります。つまり、プラグインのビルド スクリプトへの依存関係が追加されます。
- 各 SDK のすべての静的クラスをプロキシします - メソッド定義が重複していますが、実装は Shared プロジェクトから対応する静的メソッドを呼び出すだけです - 最も簡単なように見えますが、欠点は、Javadoc を手動でコピーする必要があることです。生成時に自動的にこれを行う単純な Javadoc タグはありますか?
- すべての静的クラスを「通常」に変換し、各 SDK でサブクラスを作成するだけです。(私の考えでは) 不必要なパフォーマンス オーバーヘッドです。