我正在尝试在Ant构建文件中进行令牌替换,但前提是该令牌位于具有特定内容的行中。
文件中的示例模型片段:
<script type="text/javascript" src="scripts/someFolder/someFile1.js"></script>
<script type="text/javascript" src="scripts/otherFolder/fileName.js"></script>
<script type="text/javascript" src="scripts/aFolder/file3.js"></script>
<script type="text/javascript" src="scripts/someFolder/aFile.js"></script>
<script type="text/javascript" src="scripts/someFolder/subfolder/anotherFile.js"></script>
<body>
<p>Stuff</p>
在这个例子中,我想为来自“somefolder”的任何js文件附加一个?时间戳。 我试过这些方面的东西(实际的正则表达式是不同的):
<copy file="xyz.jsp" tofile="${staging}/jsp/Links-test.jsp">
<filterchain>
<linecontainsregexp>
<regexp pattern="someFolder" />
</linecontainsregexp>
<replacestring from=".js" to=".js?blahblah" />
</filterchain>
</copy>
但这只会产生一个只包含修改过的行的文件。我需要设置什么标志来保存所有文件内容?我需要整个文件,只需要一些条件替换。
答案 0 :(得分:0)
您可以将多个过滤链放在一起。您的过滤器链会过滤掉包含正则表达式的行。您需要的是第二个过滤器链,将其重新添加。
完全未经测试:
<copy file="xyz.jsp" tofile="${staging}/jsp/Links-test.jsp">
<filterchain>
<linecontainsregexp>
<regexp pattern="someFolder" />
</linecontainsregexp>
<replacestring from=".js" to=".js?blahblah" />
</filterchain>
<filterchain>
<linecontainsregexp negate="true">
<regexp pattern="someFolder" />
</linecontainsregexp>
</filterchain>
</copy>