Ant构建脚本,用于创建具有多个WAR的EAR

时间:2014-03-03 10:09:29

标签: ant build ear

我想创建Ant构建脚本以从多个WAR构建EAR。我有3个不同的Web项目(3个不同的WAR)。我需要知道应该在哪里保留构建EAR的build.xml。 我应该在这3个项目的父文件夹中创建一个新的EAR项目吗?

2 个答案:

答案 0 :(得分:0)

我有build.xml的父项目和包含单个模块的子文件夹

  1. 的build.xml
  2. 耳模块/
  3. EJB模块/
  4. 网络的模块/
  5. build.xml为每个模块调用ant,然后将它们组合在一起以产生结果。

    这是来自具有多个模块的单蚂蚁的样本。我更喜欢在从主文件夹调用的每个模块中都有单独的ant文件。蚂蚁的依赖性可能很棘手。这可能是人们喜欢maven / graddle而不是蚂蚁的原因。

    <target name="war" depends="ejb">
        <mkdir dir="${build.dir}/war" />
        <path id="web-classpath">
            <path refid="classpath" />
            <file file="${build.dir}/${ant.project.name}.jar" />
        </path>
        <javac srcdir="web-module/java" classpathref="web-classpath" destdir="${build.dir}/war" debug="true"
               source="${compiler.source.level}" target="${compiler.target.level}" encoding="${src.encoding}"/>
        <war destfile="${build.dir}/${ant.project.name}.war" webxml="web-module/war/WEB-INF/web.xml">
            <webinf dir="web-module/war/WEB-INF">
                <exclude name="web.xml"/>
                <exclude name="classes/**"/>
                <exclude name="lib/**"/>
            </webinf>
            <classes dir="${build.dir}/war" />
            <lib dir="web-module/war/WEB-INF/lib"/>
            <fileset dir="web-module/war">
                <exclude name="WEB-INF/*"/>
                <exclude name="META-INF/*"/>
            </fileset>
        </war>
    </target>
    

答案 1 :(得分:0)

您是否考虑过Gradle。 Gradle支持multi-module projects 如果您遵循他们的约定,构建脚本是相当直接的。对于这个项目,您将有三个项目生成一个战争(来自每个),然后是一个父项目,它创建耳朵并拉入战争工件以创建耳朵文件。

值得一看,但我知道你问过Ant。