在构建时,我正在使用属性文件中的变量更新存储在web.xml文件中的一些变量,有没有办法简化我在这里做的事情:
<target name="war-test" depends="compile">
<mkdir dir="${dist}"/>
<mkdir dir="${dist}/tmp"/>
<copy file="WebContent/WEB-INF/web.xml.templ" tofile="${dist}/tmp/web.xml">
<filterchain>
<replacetokens>
<token key="smtp.hostname" value="${test.smtp.hostname}"/>
<token key="smtp.port" value="${test.smtp.port}"/>
</replacetokens>
</filterchain>
</copy>
<war destfile="${dist}/mywarfile-test.war" webxml="${dist}/tmp/web.xml">
<fileset dir="WebContent">
<exclude name="META-INF/**"/>
<exclude name="META-INF"/>
<exclude name="WEB-INF/**"/>
<exclude name="WEB-INF"/>
</fileset>
<lib dir="lib">
<exclude name="somelibrary.jar"/>
</lib>
<classes dir="${build}"/>
</war>
<delete dir="${dist}/tmp"/>
<antcall target="clean"/>
</target>
我是否需要制作tmp目录?
答案 0 :(得分:1)
如果您不想将web.xml直接复制到WebContent / WEB-INF并删除该文件夹的排除,则需要将web.xml放在临时位置。 &lt; war&gt;没有子元素这可以让你动态创建它,就像清单一样。
正如oers所说,似乎有一些奇怪的,错字或类似的东西。 您创建“$ {dist} /metainf/web.xml但包含”$ {dist} /tmp/web.xml。
如果您想要更少的线条,可以用以下内容替换过滤器链:
<filterset>
<filter token="smtp.hostname" value="${test.smtp.hostname}" />
<filter token="smtp.port" value="${test.smtp.port}" />
</filterset>