使用Ant RegEx查找引用的CSS文件,然后将该列表用作FileSet



我有一个用于测试的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重写得更健壮(现在,你忘记了分号或使用单引号,它就完蛋了)…但是乞丐不能挑肥拣瘦!

谢谢你的帮助,亲爱的!

新西兰

相关内容

  • 没有找到相关文章

最新更新