0

我正在将 build.xml 文件从 Ant 重写为 Phing,一切正常,但有一个例外。我需要在每个附加文件的末尾添加新行,但我找不到fixlastline="true".

在 Ant 中是

 <concat destfile="${libraryFilePrefix}.js" fixlastline="yes">
     <!-- many filesets -->
 </concat>

在 Phing 中就像

 <append destfile="${libraryFilePrefix}.js">
     <!-- many filesets -->
 </append>

是否有任何类似的属性,fixlastline或者我可能需要找到另一种方法来实现这一目标?

4

2 回答 2

1

我相信,其中一种方法(可能也是唯一一种方法)是在每个文件集上应用replaceregexp过滤器。您只需要在开始时应用filterchain,它就会为 each 完成工作fileset,如下所示:

<append destfile="${libraryFilePrefix}.js">
    <filterchain>
        <replaceregexp>
            <regexp pattern="([^\n])$" replace="$1${line.separator}" ignoreCase="true"/>
        </replaceregexp>
    </filterchain>

    <!-- many filesets -->
</append>
于 2013-10-21T15:14:32.570 回答
1

从 Phing 3.x 开始,AppendTask知道 fixlastline 属性。您提供的 Ant 脚本现在按预期工作

    <project name="concat-supports-fixlastline" default="concat-fixed-lastline" basedir=".">
        <target name="concat-fixed-lastline">            
            <concat destfile="${libraryFilePrefix}.js" fixlastline="yes">
                <!-- many filesets -->
            </concat>
        </target>
    </project>
于 2019-04-20T16:17:49.943 回答