2010-09-01 36 views
1

有一个无法编辑的构建过程,需要在生成的耳朵中打包另一个战争。耳朵爆炸了,所以它只是复制战争文件到它的问题,但application.xml需要更新,所以我想找到一个ant任务,将这样做。任何人都知道一个会工作?是否有一个ant任务将.war添加到现有爆炸耳朵

+0

听起来很痛苦。 – 2010-09-01 13:11:11

回答

1

最终只是在做:

<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;"/> 

相反的hackish但不能拿出另一种方式来轻松编辑文件

0
  1. 是不是 <copy>能做这份工作?
  2. 那么如何使用<xslt>来修改application.xml呢?
+0

没有因为你要更新application.xml中把总模块中,或战争将不会部署 admin.war <上下文根> /管理员 dstarh 2010-09-01 13:16:36

+0

移动然后替换对我来说工作正常现在不需要像xslt – dstarh 2010-09-02 14:08:58

0

的想法是创建战争,把文件塞进耳朵目录,请参见下面的build.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> 
+1

那样复杂我已经有东西建立我的耳朵,已经有我的战争任务,我没有的是更新的任务耳朵的application.xml与新的战争 – dstarh 2010-09-01 13:20:12

相关问题