Ant をビルド ツールとして使用すると、プロジェクトを任意の方法でパッケージ化できます。ただし、コードの一部をディストリビューションから除外すると、エラーが発生しやすくなります。必要なクラスを誤って除外する可能性があります (おそらく、すべてのクラスが必要です)。
コードを別のプロジェクトに保持することに関して、大まかなガイドラインがあります。一緒に変更するコードを同じプロジェクトに保持し、独自の jar ファイルにパッケージ化します。これは、コードの一部を、メイン アプリケーションよりも頻繁に変更されないユーティリティ ライブラリに分割できる場合に最適です。
たとえば、(Axis ライブラリなどを使用して) Web サービス WSDL から Web サービス クライアント クラスを生成したアプリケーションがあるとします。Web サービス インターフェイスは頻繁には変更されない可能性が高いため、メイン アプリケーションのビルドで常に再生成ステップが繰り返されることは望ましくありません。WSDL が変更されたときに Web サービス クライアント クラスを再作成するだけで済むように、この部分用に別のプロジェクトを作成します。別の jar を作成し、メイン アプリケーションで使用します。このスタイルにより、他のプロジェクトでこれらのユーティリティ モジュールを再利用することもできます。
このスタイルに従う場合、jar マニフェストにバージョン番号を配置して、どのアプリケーションがどのバージョンのモジュールを使用しているかを追跡できるようにする必要があります。これをどこまで実行したいかによっては、各リビジョンで発生した変更の詳細を示すテキスト ファイルを jar に保持することもできます (オープン ソース ライブラリのように)。