私たちの (Java) 環境では許可されていない特定のコンパイラ依存関係があります。アプリケーションとプロセスと呼ばれる 2 つのサーバーがあります。Application、Process、および Shared と呼ばれる 3 つのルート Java パッケージがあります。Application と Process は相互に参照することはできませんが、Shared をそれぞれ参照することはできます。Shared は、他の 2 つのパッケージの任意のクラスを参照できます。Ant でこれらの依存関係を強制するにはどうすればよいですか? ご想像のとおり、問題は、Eclipse ベースの環境ではすべてが正常にコンパイルされますが、(複数のサーバーがあるため) クラスが存在しないランタイム エラーが発生することです。
私はかなりのことを試みましたが、何もうまくいきませんでした。以下の私の現在の試みを参照してください。明確にするために無関係なコードを省略しています。コメントが含まれています。
<!--Compile the 'shared' directories. Since shared depends on Application and Process, we compile everything then delete Application and Process later. -->
<javac srcdir="${src.dir}" destdir="${build.dir}">
<classpath>
...
</classpath>
</javac>
<delete dir="${build.dir}/application" />
<delete dir="${build.dir}/process" />
<!--Compile the 'application' directories -->
<javac sourcepath="" srcdir="${src.dir}/application" destdir="${build.dir}">
<classpath>
<pathelement location="${build.dir}/shared" />
...
</classpath>
</javac>
<!--Compile the 'process' directories -->
<javac sourcepath="" srcdir="${src.dir}/process" destdir="${build.dir}">
<classpath>
<pathelement location="${build.dir}/shared" />
...
</classpath>
</javac>