Возможно, вам стоит сделать что-то подобное?
<replace dir="${basedir}" token="@CDN" value=""${cdnUrl}"">
<include name="**/*.html"/>
</replace>
Трудно сказать. Являются ли другие файлы HTML в каталоге или подкаталогах?
Я не рекомендую моим разработчикам использовать <replace>
, потому что вы в конечном итоге заменяете файлы, которые проверяются в системе управления версиями. Разработчики фиксируют свои изменения, а файлы, которые были изменены с помощью <replace>
, заканчиваются тем, что обновляются с измененными параметрами. Обычно мы получаем несколько коммитов, поскольку разработчики пытаются распутать беспорядок (который обычно попадает в производственные развертывания).
Я рекомендую, чтобы скопировать файлы и использовать <filterset>
и <filter>
сделать замену:
<mkdir dir="${basedir}/target"/> <!-- Or whatever you call your build directory -->
<copy todir="${basedir}/target">
<fileset dir="${basedir}">
<include name="**/*.html"/>
</fileset>
<filterset prefix="@" suffix="@">
<filter token="CDN"
value=""${cdnUrl}""/>
</filterset>
</copy>
Это копирует ваши HTML-файлы в каталог target
(который является каталог для сборки). Когда разработчик запускает цель clean
, он просто удаляет этот каталог target
.
Спасибо, я смог разобраться с этим решением. –