我们的(Java)环境中不允许存在某些编译器依赖项。我们有两台服务器,称为Application和Process。我们有三个根Java包,称为Application,Process和Shared。不允许应用程序和进程相互引用,但它们可以分别引用Shared。 Shared可以引用任何其他两个包中的任何类。如何使用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>
答案 0 :(得分:0)
您需要将共享分为三个部分,共享独立,共享应用程序和共享进程。
首先编译shared-standalone,
与应用程序一起编译共享应用程序,
与进程一起编译共享进程。