代码之家  ›  专栏  ›  技术社区  ›  dstarh

是否有一个ant任务要添加一个.war到一个现有的ear中

  •  1
  • dstarh  · 技术社区  · 15 年前

    拥有一个无法编辑的构建过程,并且需要在生成的ear中打包另一个war。耳朵被炸了,所以只需将war文件复制到耳朵里,但是应用程序.xml需要更新,所以我想找到一个蚂蚁任务,可以做到这一点。有人知道一个能用的吗?

    3 回复  |  直到 15 年前
        1
  •  1
  •   dstarh    15 年前

    最后只是做了:

    <replace file="${j2ee.build.dir}/${j2ee.app..name}/META-INF/application.xml" token="&lt;/application&gt;" value="&lt;module&gt;&lt;web&gt;&lt;web-uri&gt;admin.war&lt;/web-uri&gt;&lt;context-root&gt;/admin&lt;/context-root&gt;&lt;/web&gt;&lt;/module&gt;&lt;/application&gt;"/>
    

        2
  •  0
  •   mrjohn    15 年前

    其思想是创建war并将文件放入ear目录,请参见以下内容生成.xml代码

    <?xml version="1.0"?>
    <project name="Add war to ear example" default="all" basedir=".">
    
    <target name="init">
    <property name="root.directory" value="${basedir}"/>
    <property name="classdir" value="${root.directory}/build/src"/>
    <property name="src" value="${root.directory}/src"/>
    <property name="web" value="${root.directory}/web"/>
    <property name="deploymentdescription" value="${root.directory}/build/deploymentdescriptors"/>
    
    <property name="war.file" value="test.war"/>
    <property name="ear.file" value="test.ear"/>
    
    <property name="ear.directory" value="${root.directory}/build/ear"/>
    <property name="war.directory" value="${root.directory}/build/war"/>
    
    <!-- Create Web-inf and classes directories -->
    <mkdir dir="${war.directory}/WEB-INF"/>
    <mkdir dir="${war.directory}/WEB-INF/classes"/>
    
    <!-- Create Meta-inf and classes directories -->
    <mkdir dir="${ear.directory}/META-INF"/>
    
    </target>
    
    <!-- Main target -->
    <target name="all" depends="init,build,buildWar,buildEar"/>
    
    <!-- Compile Java Files and store in /build/src directory -->
    <target name="build" >
    <javac srcdir="${src}" destdir="${classdir}" debug="true" includes="**/*.java" />
    </target>
    
    <!-- Create the War File -->
    <target name="buildWar" depends="init">
    <copy todir="${war.directory}/WEB-INF/classes">
    <fileset dir="${classdir}" includes="**/*.class" /> 
    </copy>
    
    <copy todir="${war.directory}/WEB-INF">
    <fileset dir="${deploymentdescription}" includes="web.xml" /> 
    </copy>
    
    <copy todir="${war.directory}">
    <fileset dir="${web}" includes="**/*.*" /> 
    </copy>
    
    <!-- Create war file and place in ear directory -->
    <jar jarfile="${ear.directory}/${war.file}" basedir="${war.directory}" />
    </target>
    
    <!-- Create the War File -->
    <target name="buildEar" depends="init">
    <copy todir="${ear.directory}/META-INF">
    <fileset dir="${deploymentdescription}" includes="application.xml" /> 
    </copy>
    
    <!-- Create ear file and place in ear directory -->
    <jar jarfile="${root.directory}/${ear.file}" basedir="${ear.directory}" />
    </target>
    
    </project>
    
        3
  •  0
  •   D.Shawley    15 年前
    1. 不会 <copy> 做这个工作?
    2. 用什么 <xslt> 修改 application.xml 然后呢?
    推荐文章