【发布时间】:2026-02-05 09:55:02
【问题描述】:
我们的项目有一个庞大而古老的 Ant 构建文件。
几天前,其中一个靶子坏了。它调用svnversion 并将版本写入.java 文件。突然字符串中出现换行符,编译器报错,原因是:
String version = "Foo
bar";
我几乎没有使用 Ant 的经验,而且我很难理解文档。我认为某种“过滤器链”可以解决问题,但我无法让它发挥作用。
这里是构建目标:
<target name="svnversion">
<exec executable="svnversion" dir="${basedir}" outputproperty="svnversion">
<arg value="${basedir}"/>
<arg value="/dev/projects/${project.name}/trunk/"/>
</exec>
<echo message="svnversion ${svnversion}"/>
它在 Windows 上运行。我只是想用任何内容替换任何“\n”或“\n\r”。
奇怪的是,如果我在 cmd 中手动运行svnversion,我在输出中看不到换行符...
【问题讨论】: