我有一个用于测试的CSS文件。它@导入我所有的样式表:
@import "css/structure.css"
@import "css/typography.css"
@import "css/forms.css"
这让我可以测试样式和更改,但以一种您永远不会想要的方式。
当我"构建"这个项目时,我想找到所有这些引用(RegEx css/(.*?.css)),然后使用该列表作为文件集,然后合并和压缩。
奇怪的是,合并和压缩是最简单的部分。我完全不知道如何使用RegEx来构建我的文件集。如果我必须去一个。properties文件,我会,但我希望一些可以更自动化的东西。
感谢大家的关心……
内特
标准文件globing不工作吗?
<fileset dir="${resource.dir}" casesensitive="yes">
<include name="**/*.css"/>
</fileset>
查看文件集类型文档获取更多信息。
我远远不是一个伟大的RegEx'er,但我想我找到了我的解决方案:
我创建了一个目标,它加载我的主style .css文件,从中抓取各个文件,并将它们全部放在逗号分隔的属性中:
<!-- Get CSS Filelist -->
<target name="get.css">
<loadfile property="list-temp.css" srcFile="${source_dev}/css/styles.css"/>
<propertyregex property="list-temp2.css" input="${list-temp.css}" regexp='[s|.]*?@import url("(.*?)");s' replace="1," casesensitive="false" global="true" />
<propertyregex property="list-temp3.css" input="${list-temp2.css}" regexp=',$' replace="" casesensitive="false" global="true" />
<propertyregex property="list.css" input="${list-temp3.css}" regexp='/*.*?*/' replace="" casesensitive="false" global="true" />
<echo>${list.css}</echo>
</target>
结果是${list.css} = "one.css, two.css, structure.css, etc.css",然后我可以将其用作文件列表/文件集。
它不漂亮,但它有效。我希望我能把这个RegEx重写得更健壮(现在,你忘记了分号或使用单引号,它就完蛋了)…但是乞丐不能挑肥拣瘦!
谢谢你的帮助,亲爱的!
新西兰