我有一个像这样的目录结构:
-css
---subdir1
------common.css
---subdir2
------common.css
------custom.css
---subdir3
------common.css
------styles.css
我正在尝试循环 Phing 中的每个目录,然后使用 YUI 压缩器将每个文件缩小为每个目录中的单个散列文件名。结果看起来像这样:
-css
---subdir1
------1973a613f7c87b03dbe589e6935a09bd.min.css
---subdir2
------1973a613f7c87b03dbe589e6935a09bd.min.css
---subdir3
------1973a613f7c87b03dbe589e6935a09bd.min.css
因此,我需要知道我所在的每个目录,以便将我的缩小脚本输出到它。
这是我的两个目标:
<target name="minify">
<echo msg="Minifying CSS and JS files with YUI at ${yuicompressor}" />
<foreach param="filename" absparam="absfilename" target="runyui">
<fileset dir="${publicdir}/css">
<include name="*.css" />
<include name="**/*.css" />
</fileset>
</foreach>
</target>
<target name="runyui">
<filehash file="${abspathtopwd}" hashtype="MD5" propertyname="filehash" />
<echo msg="java -jar ${yuicompressor} -v --line-break 5000 --type css ${absfilename} >> ${abspathtopwd}/${filehash}.min.css" />
<exec command="java -jar ${yuicompressor} -v --line-break 5000 --type css ${absfilename} >> ${abspathtopwd}/${filehash}.min.css" />
</target>
在哪里:
- yuicompressor是 yui 压缩器 jar 的路径
- publicdir只是我的应用程序公共目录的绝对路径
- abspathtopwd是我希望用于“当前迭代的目录”的属性
如何在当前的 foreach 迭代中使用 Phing 获取当前工作目录(或 pwd,如果您愿意)?我所能看到的只是文件本身的相对和绝对路径。
注意:我知道这个当前的解决方案会为每个输入文件创建一个新文件,但这就是我打算用abspathtopwd解决的问题。
谢谢!