0

私たちの (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>
4

1 に答える 1

0

共有を、共有スタンドアロン、共有アプリケーション、および共有プロセスの 3 つの部分に分割する必要があります。

最初に共有スタンドアロンをコンパイルし、

アプリケーションと一緒に共有アプリケーションをコンパイルし、

プロセスと一緒に共有プロセスをコンパイルします。

于 2013-01-28T22:53:01.540 に答える