创建特定的WAR文件

时间:2013-10-07 15:37:42

标签: ant

在ANT脚本中,有没有办法将'environnement'目录中的文件包含到不同的战争中?

我的文件系统树:

  • 环境在
    • DEV
      • 的web.xml
      • log4j.properties
    • INT < UL>
    • 的web.xml
    • log4j.properties
  • 的WebContent
    • WEB- INF
      • 的web.xml
      • log4j.properties
  • 从build.xml中提取:

    <target name="createForDEV">
      <delete file="environnement/DEV/${timeStampDay}/${warfile}.war" />
      <war destfile="environnement/DEV/${timeStampDay}/${warfile}.war" webxml="environnement/DEV/web.xml" update="true">
        <classes dir="build/classes" />
        <fileset dir="WebContent">
          <exclude name="WEB-INF/web.xml" />
          <exclude name="**/Thumbs.db" />
        </fileset>
      </war>
    </target>
    <target name="createForINT">
      <delete file="environnement/INT/${timeStampDay}/${warfile}.war" />
      <war destfile="environnement/INT/${timeStampDay}/${warfile}.war" webxml="environnement/INT/web.xml" update="true">
        <classes dir="build/classes" />
        <fileset dir="WebContent">
          <exclude name="WEB-INF/web.xml" />
          <exclude name="**/Thumbs.db" />
          <exclude name="**/test.jsp" />
        </fileset>
      </war>
    </target>
    

    我有两个配置文件:

    • 用于DEV环境
    • for INT environment

    当我制作WAR文件时,我想忽略一些文件并将其替换为'environnement'目录中的其他特定文件?

    • createForDEV目标中制作WAR时,我想从environnement / DEV获取文件并替换相应的文件
    • createForINT目标中制作WAR时,我想从environnement / INT获取文件并替换相应的文件

    1 个答案:

    答案 0 :(得分:0)

    这里的技巧是利用duplicate任务的war属性,并包含多个fileset元素。 preserve的值duplicate告诉它忽略重复的条目。第一个fileset(来自DEVINT)中的文件将首先置于战争中。 WebContent中的所有其他文件都将包含在第二个fileset中,但DEVINT中已包含的所有文件都将被忽略。

    <target name="createForDEV">
      <delete file="environnement/DEV/${timeStampDay}/${warfile}.war" />
      <war destfile="environnement/DEV/${timeStampDay}/${warfile}.war" webxml="environnement/DEV/web.xml" update="true" duplicate="preserve">
        <classes dir="build/classes" />
        <fileset dir="environnement/DEV">
          <exclude name="web.xml" />
        </fileset>
        <fileset dir="WebContent">
          <exclude name="WEB-INF/web.xml" />
          <exclude name="**/Thumbs.db" />
        </fileset>
      </war>
    </target>
    <target name="createForINT">
      <delete file="environnement/INT/${timeStampDay}/${warfile}.war" />
      <war destfile="environnement/INT/${timeStampDay}/${warfile}.war" webxml="environnement/INT/web.xml" update="true" duplicate="preserve">
        <classes dir="build/classes" />
        <fileset dir="environnement/INT">
          <exclude name="web.xml" />
        </fileset>
        <fileset dir="WebContent">
          <exclude name="WEB-INF/web.xml" />
          <exclude name="**/Thumbs.db" />
          <exclude name="**/test.jsp" />
        </fileset>
      </war>
    </target>