我使用替换任务替换我的html页面中的标记,但它似乎只是替换1个文件中的标记并跳过其余部分。
<replace dir="${basedir}" token="@CDN" value=""${cdnUrl}"">
<include name="*.html"/>
</replace>
任何想法为什么它只在这个目录中的一个html文件中替换这个值?
答案 0 :(得分:1)
也许你应该做这样的事情?
<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
目录。