Недавно я спустился по той же дороге, используя LessCss, аналогичную технологию. Сначала я попытался внедрить JRuby в мой жизненный цикл сборки. Но, к сожалению, Maven + JRuby - монстр, он медленный, огромный и багги (в два раза меньше, даже если он не начнет, потому что он будет жаловаться на путь к файлу, на котором он работал).
К счастью, теперь есть порт JavaScript LessCss, который я теперь внедряю через Mozilla Rhino. I describe the process in this blog post.
Вчера, хотя я взял его на следующий уровень, создав плагин Maven LessCss для минимизации конфигурации POM и дублирования кода. К сожалению, я не могу поделиться им, потому что это проприетарный код для моего текущего клиента, но решение прост:
Use GMaven to create the Plugin, создать абстрактное базовое mojo, которое вызывает компилятор LessCss и несколько конкретных реализаций, которые настраивают базовый mojo для разных ресурсов комплектов:
eg
lesscss:compile
составляет от всех <resources>
в ${project.build.outputDirectory}
lesscss:test-compile
компилирует от всех <testResources>
в ${project.build.testOutputDirectory}
lesscss:war-compile
(компилирует из всех src/main/webapp
в ${project.build.directory}/${project.build.finalName}
, взорванные войны каталог)
Так что пока я не могу помочь вам с SASS (кроме вас просить авторизацию или портировать его в Groovy, Java или JavaScript), я думаю, что я показал вам реальную альтернативу.
Конечно, вы также можете реализовать плагин Maven в java без Groovy (также встраивая JavaScript через Rhino), но я думаю, что в Groovy это проще.
Интересное сообщение +1 –
На моем диске для работы до того, как я прочитал ваш ответ, я подумывал написать построитель Groovy для CSS и микро DSL, подобный SASS, с сервлет-фильтром или сервлетом для обслуживания CSS (то есть, что JSP/GSP - HTML, но для CSS). Отличный пост! –
@Adam: Как я писал в своем блоге, что-то очень похожее уже существует для Less и Wicket: http://www.richardnichols.net/2010/06/less-css-in-wicket-using-mozilla-rhino/ , BTW Если вы когда-либо пишете такой Groovy Builder, пожалуйста, отправьте его здесь. –