用蚂蚁把一个阶级排除在战争之外



我有一个使用RMI的web应用程序,所以它包括RMI接口类,但不包括它的实现。为了避免在两个地方重复接口定义,我试图将RMI服务器代码保留在web应用程序的Eclipse项目中;但是RMI服务器类必须从war文件中排除,因为它有一个main()方法。build.xml中的jar任务和.spec用于为RMI Server Daemon制作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/…

我怎样才能做到这一点?或者,单一项目的目标是不明智的吗?

<classes> 您的文件集。对于类文件,您不需要同时使用<classes><fileset>。我认为,当你把它排除在其中一个之外时,它就会被另一个所包含。

你的最后一句话呼应了我的想法。如果我有一个web服务器和一个RMI服务器,我会把它们放在不同的项目中,即使一个调用另一个。我可能会使用Maven或类似的工具来帮助我。

我现在会非常惊讶地发现一个项目,把两个不同的服务器进程实现到一个单一的Eclipse/IDEA/Maven/Ivy/其他项目。

相关内容

  • 没有找到相关文章

最新更新