Есть ли задача по добавлению .war в существующее взорванное ухо? - PullRequest
1 голос
/ 01 сентября 2010

Иметь процесс сборки, который нельзя редактировать, и нужно собрать еще одну войну в сгенерированное ухо. Ухо взорвано, поэтому нужно просто скопировать в него файл war, но файл application.xml необходимо обновить, поэтому я бы хотел найти задачу ant, которая сделает это. Кто-нибудь знает один, который будет работать?

Ответы [ 3 ]

1 голос
/ 01 сентября 2010

в итоге просто делает:

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

Скорее хакерский, но не мог придумать другой способ легко отредактировать файл

0 голосов
/ 01 сентября 2010

Идея состоит в том, чтобы создать войну и поместить файл в каталог ear, см. Следующий код 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>
0 голосов
/ 01 сентября 2010
  1. Не будет <copy> делать работу?
  2. Как насчет использования <xslt> для изменения application.xml тогда?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...