WAR 任务中的 ANT 文本替换

问题描述 投票:0回答:1

我们有一个 ant 构建过程,当前正在构建我们的 war 文件。 战争中非编译文件(html)的子集需要令牌替换,但我不想在磁盘上执行此操作(我们不想保存更改)。 有什么办法可以在战争进行时进行代币替换吗?

当前战争进程

<war basedir="${company.webapps.dir}" destfile="${dist.dir}/${company.war.filename}"
     webxml="${company.webapps.dir}/WEB-INF/web.xml" update="true">
    <exclude name="WEB-INF/**" />
    <exclude name="**/*.coffee" />
    <exclude name="**/*.haml" />
    <exclude name="**/*.sass" />
    <exclude name="**/*.scss" />
    <webinf dir="${company.webapps.dir}/WEB-INF/">
        <include name="**/*" />
        <exclude name="**/servlet-api.jar" />
    </webinf>
    <manifest>
      <attribute name="build-timestamp" value="${build.info.timestamp}" />
    </manifest>
</war>

如果没有增加大量时间,我可以接受这是战后任务

ant war
1个回答
0
投票

我对你的说法感到困惑“我不想在磁盘上这样做。(我们不想保存更改。)”。你能详细说明一下吗?您可以将

<copy/>
任务与
<filterset>
一起使用,这将允许您处理 HTML 文件并替换您想要在其中替换的任何标记。

然后您可以在战争中使用具有替换令牌的文件的复制版本。我尝试在战争本身中使用

<filterset>
,但它不适用于
<fileset>
<classes>
。你必须使用
<copy>
才能使用
<filterset>
,我一直都是这么做的。

“保存更改”是什么意思?您不必保存复制的文件,它们就像其他文件一样是工作文件。 <copy dir="${html.dir}" todir="${html.work.dir}"> <filterset> <filter token="${token1}" value="${value1}"/> <filter token="${token2}" value="${value2}"/> </filterset> </copy> <war destfile="${war.file}" webxml="${web.xml.file}"> <classes dir="${html.work.dir}"/> <!-- The munged HTML files -->

	
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.