Phing UpToDateTask с картографом? - PullRequest
1 голос
/ 19 июля 2011

Может ли кто-нибудь дать мне пример того, как использовать UpToDateTask Phing с Mapper? Я не могу понять это и не могу найти никаких примеров в сети.

Вот что я пытаюсь достичь. У меня есть куча файлов SCSS, которые я преобразовать в CSS с помощью ExecTask и синтаксического анализатора SASS Ruby. Но я только хотите восстановить файлы CSS, если какой-либо из исходных файлов изменился.

Исходные файлы SCSS находятся в app/assets/css, а скомпилированные файлы помещено в app/webroot/css. Как я могу использовать UpToDateTask для проверки, если таковые имеются файлов в app/assets/css новее любых файлов в app/webroot/css

Обратите внимание, что у компиляции SASS нет сопоставления имен файлов 1: 1 CSS файлы. Там может быть десяток файлов SCSS, которые в конце концов получат скомпилировано в 3-4 файла CSS. Я знаю, что мог бы просто жестко закодировать эти CSS-файлы в свой build.xml, но я хотел бы создать более общую, многократно используемую цель сборки.

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 01 августа 2011

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

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

Я понял это для себя методом проб и ошибок. Сценарий, который я описал выше (тестирование, если какой-либо файл в исходном каталоге новее, чем любой файл в целевом каталоге), не может быть реализован с помощью преобразователя в задаче uptodate. Задача uptodate просто перебирает fileset, преобразует любое имя файла, используя mapper, а затем сравнивает этот файл с исходным файлом.

В настоящее время я использую набор файлов, который включает в себя все файлы, которые не начинаются с подчеркивания (которые включают в себя SASS), и простой маппер, который просто выводит *.scss в *.css. Это работает, но это не идеально. Когда изменяется только один из включаемых файлов (начинающихся с подчеркивания), Phing не обнаружит никаких изменений и не пропустит перестройку CSS-ресурсов.

...