Используйте Ant RegEx для поиска ссылочных CSS-файлов, а затем используйте этот список в качестве FileSet - PullRequest
1 голос
/ 01 августа 2011

У меня есть файл CSS, который я использую для тестирования. Он импортирует все мои таблицы стилей:

@import "css/structure.css"
@import "css/typography.css"
@import "css/forms.css"

Это позволяет мне тестировать стили и изменения, но таким образом, что вы никогда не захотите жить.

Когда я "собираю" этот проект, я хотел бы найти все эти ссылки (RegEx css /(.*?. Css)), а затем использовать этот список в качестве FileSet для последующего слияния и сжатия.

Слияние и сжатие, как ни странно, самая простая часть. Я в полной растерянности от того, как использовать RegEx для создания моего FileSet.

Если мне нужно перейти к файлу .properties, я это сделаю, но я надеялся на что-то, что могло бы быть более автоматизированным.

Ценю любые мысли ...

-Nate

Ответы [ 2 ]

0 голосов
/ 03 августа 2011

Я не очень хороший 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!

1012 * пг *

0 голосов
/ 02 августа 2011

Не работает ли стандартная глобализация файлов?Вы пробовали:

<fileset dir="${resource.dir}" casesensitive="yes">
  <include name="**/*.css"/>
</fileset>

См. Документацию Тип набора файлов для получения дополнительной информации.

...