我有一个使用 RMI 的 Web 应用程序,因此它包含 RMI 接口类但不包含它的实现。为了避免在两个地方重复接口定义,我试图将 RMI 服务器代码保留在 Web 应用程序的 Eclipse 项目中;但是 RMI 服务器类必须从 war 文件中排除,因为它有一个 main() 方法。build.xml 中的 jar 任务和 .spec 用于为 RMI 服务器守护进程制作 RPM。
我尝试在战争任务中使用排除子句,然后在课程中,
<war webxml="${web.dir}/WEB-INF/web.xml" destfile="${dist.dir}/${ant.project.name}.war">
<classes dir="${build}" excludes="**/RMIServer.class" />
<fileset dir="${web.dir}" />
<manifest>
<attribute name="Built-Date" value="${TODAY}" />
<attribute name="Built-By" value="${user.name}" />
</manifest>
</war>
然后在文件集中:
<war webxml="${web.dir}/WEB-INF/web.xml" destfile="${dist.dir}/${ant.project.name}.war">
<classes dir="${build}" />
<fileset dir="${web.dir}" >
<exclude name="**/RMIServer*.class"/>
</fileset>
<manifest>
<attribute name="Built-Date" value="${TODAY}" />
<attribute name="Built-By" value="${user.name}" />
</manifest>
</war>
但我一直无法让它工作 - 服务器类仍在 war/WEB-INF/classes/...
我怎样才能做到这一点?或者,这个单一项目的目标是不明智的吗?