2010-09-01 54 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