带文件集的 phing toString 方法
phing toString method with fileset
Phing 的文档显示了一个示例,该示例应使用 ID 为“sourcefiles”的文件集显示特定文件夹的所有 php 文件列表:
https://www.phing.info/guide/chunkhtml/ch04s02.html
(见 4.2.4)
所以我用这个任务组合了一个构建-xml:
<project default="countFile">
<property name="BUILD_DIR" value="./buildTest"/>
<target name="dist" depends="build">
<fileset id="sourcefiles" dir="${BUILD_DIR}">
<include name="./*.*" />
</fileset>
<echo>files in build dir: ${toString:sourcefiles}</echo>
<echo>build dir: ${BUILD_DIR}</echo>
<echo>OS: ${os.name}</echo>
</target>
</project>
我还尝试了文档中的单行版本:<fileset id="sourcefiles" dir=".build" includes="**/*.txt"/>
。
但是,输出只是美元花括号文本作为文本:'${toString:sourcefiles}' 而不是其插值结果。
纠正它的正确方法是什么?这是文档中的错误吗?
(我不是部署新手,而是 phing 新手。)
您的文件集中的 include
元素具有无效模式。来自 documentation
In patterns, one asterisk (*) maps to a part of a file/directory name within a
directory level. Two asterisks (**) may include above the "border" of the directory
separator.
您的示例变为:
<project default="countFile">
<property name="BUILD_DIR" value="./buildTest"/>
<target name="dist" depends="build">
<fileset id="sourcefiles" dir="${BUILD_DIR}">
<include name="*.*" />
</fileset>
<echo>files in build dir: ${toString:sourcefiles}</echo>
<echo>build dir: ${BUILD_DIR}</echo>
<echo>OS: ${os.name}</echo>
</target>
</project>
并且会输出如下内容:
Buildfile: C:\Users\XXX\test\build.xml
[autoloader] Loading autoloader from C:\Users\XXX\test/bootstrap.php
[php] Evaluating PHP expression: ini_set('error_reporting', -1);
[php] Evaluating PHP expression: ini_set('memory_limit', -1);
[php] Evaluating PHP expression: ini_set('date.timezone', 'UTC');
Phing Build Tests > test:
[echo] files in build dir: bootstrap.php;build.xml;phpunit-sparse.xml;phpunit.xml
BUILD FINISHED
Total time: 0.4785 seconds
Build finished at 30.11.2020 23:19 with exit code 0.
另请注意,${toString:XXX}
功能仅适用于 phing 3.x
Phing 的文档显示了一个示例,该示例应使用 ID 为“sourcefiles”的文件集显示特定文件夹的所有 php 文件列表:
https://www.phing.info/guide/chunkhtml/ch04s02.html (见 4.2.4)
所以我用这个任务组合了一个构建-xml:
<project default="countFile">
<property name="BUILD_DIR" value="./buildTest"/>
<target name="dist" depends="build">
<fileset id="sourcefiles" dir="${BUILD_DIR}">
<include name="./*.*" />
</fileset>
<echo>files in build dir: ${toString:sourcefiles}</echo>
<echo>build dir: ${BUILD_DIR}</echo>
<echo>OS: ${os.name}</echo>
</target>
</project>
我还尝试了文档中的单行版本:<fileset id="sourcefiles" dir=".build" includes="**/*.txt"/>
。
但是,输出只是美元花括号文本作为文本:'${toString:sourcefiles}' 而不是其插值结果。
纠正它的正确方法是什么?这是文档中的错误吗?
(我不是部署新手,而是 phing 新手。)
您的文件集中的 include
元素具有无效模式。来自 documentation
In patterns, one asterisk (*) maps to a part of a file/directory name within a directory level. Two asterisks (**) may include above the "border" of the directory separator.
您的示例变为:
<project default="countFile">
<property name="BUILD_DIR" value="./buildTest"/>
<target name="dist" depends="build">
<fileset id="sourcefiles" dir="${BUILD_DIR}">
<include name="*.*" />
</fileset>
<echo>files in build dir: ${toString:sourcefiles}</echo>
<echo>build dir: ${BUILD_DIR}</echo>
<echo>OS: ${os.name}</echo>
</target>
</project>
并且会输出如下内容:
Buildfile: C:\Users\XXX\test\build.xml
[autoloader] Loading autoloader from C:\Users\XXX\test/bootstrap.php
[php] Evaluating PHP expression: ini_set('error_reporting', -1);
[php] Evaluating PHP expression: ini_set('memory_limit', -1);
[php] Evaluating PHP expression: ini_set('date.timezone', 'UTC');
Phing Build Tests > test:
[echo] files in build dir: bootstrap.php;build.xml;phpunit-sparse.xml;phpunit.xml
BUILD FINISHED
Total time: 0.4785 seconds
Build finished at 30.11.2020 23:19 with exit code 0.
另请注意,${toString:XXX}
功能仅适用于 phing 3.x