Используйте Ant RegEx для поиска ссылочных CSS-файлов, а затем используйте этот список в качестве FileSet
У меня есть файл CSS, который я использую для тестирования. Он импортирует все мои таблицы стилей:
@import "css/structure.css"
@import "css/typography.css"
@import "css/forms.css"
Это позволяет мне тестировать стили и изменения, но таким образом, что вы никогда не захотите жить.
Когда я "собираю" этот проект, я хотел бы найти все эти ссылки (RegEx css/(.*?.css)), а затем использовать этот список в качестве FileSet для последующего слияния и сжатия.
Слияние и сжатие, как ни странно, самая легкая часть. Я в полной растерянности относительно того, как использовать RegEx для создания моего FileSet.
Если мне нужно перейти к файлу.properties, я это сделаю, но я надеялся на что-то, что могло бы быть более автоматизированным.
Цени любые мысли...
-Nate
2 ответа
Не работает ли стандартная глобализация файлов? Ты пытался:
<fileset dir="${resource.dir}" casesensitive="yes">
<include name="**/*.css"/>
</fileset>
См. Документацию Типа набора файлов для получения дополнительной информации.
Я, безусловно, не великий RegEx'er, но я думаю, что нашел свое решение:
Я создал цель, которая загружает мой основной файл styles.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 и др. Css", который я затем могу использовать в качестве списка файлов / набора файлов.
Это не красиво, но это работает. Хотелось бы переписать этот RegEx на что-нибудь более надежное (прямо сейчас, вы забыли точку с запятой или используете одинарные кавычки, и оно обанкротилось) ... но нищие не могут выбирать!
Спасибо за помощь hoipolloi!
Новая Зеландия