Я ищу реализацию SASS на Java (может использоваться с JSP/JSF). Для Python я нашел CleverCSS, но для Java ничего нет. Кто-нибудь слышал что-то об этом виде инструмента для генерации CSS?
SASS для Java?
Ответ 1
С ANT:
- Загрузите JAR файл полного файла jar (JRuby Полная страница загрузки jar)
- Загрузите последний код HAML/SASS (HAML/SASS tarball) и извлеките его. Поместите его в папку "/libs/sass- [VERSION]"
- Добавьте в файл сборки ant следующее.
- Замените [VERSION] в script на соответствующие версии JRuby и SASS
- Запустите ant script, и файлы sass или scss будут скомпилированы!
<path id="JRuby">
<fileset file="libs/jruby-complete-[VERSION].jar"/> <!-- Location of JRuby jar file -->
</path>
<target name="compileSCSS">
<echo message="Compiling scss files..." />
<property name="filesIn" value="${dir.css}/scss/**/[^_]*.scss" />
<property name="fileOutDir" value="/${dir.css}/${dir.css.build}" />
<script language="ruby" classpathref="JRuby">
<![CDATA[
require 'libs/sass-[VERSION]/lib/sass'
require 'sass/exec'
files = Dir.glob($project.getProperty('filesIn'))
Dir.mkdir($project.getProperty('fileOutDir')) unless File.exists?($project.getProperty('fileOutDir'))
files.each do
| file |
puts " [sass compiler] " + file + " -> " + $project.getProperty('fileOutDir') + "/" + File.basename(file, ".*") + ".css"
opts = Sass::Exec::Sass.new(["--load-path", File.dirname(file), file, File.join($project.getProperty('fileOutDir'), File.basename(file, ".*") + ".css")])
opts.parse
end
]]>
</script>
<echo message="Done compiling scss files!" />
</target>
С MAVEN:
Maven также может это сделать: Использование плагина antrun:
<project>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>compileAndMinify</id>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<mkdir dir="${project.build.directory}/compiled" />
<echo message="Compiling scss files..."/>
<path id="JRuby">
<fileset file="${basedir}/jars/jruby-complete-[VERSION].jar"/>
</path>
<property name="filesIn" value="${project.build.directory}/css/**/[^_]*.scss" />
<property name="fileOutDir" value="${project.build.directory}/compiled/css" />
<script language="ruby" classpathref="JRuby">
<![CDATA[
require 'libs/sass-[VERSION]/lib/sass'
require 'sass/exec'
files = Dir.glob($project.getProperty('filesIn'))
Dir.mkdir($project.getProperty('fileOutDir')) unless File.exists?($project.getProperty('fileOutDir'))
files.each do
| file |
puts " [sass compiler] " + file + " -> " + $project.getProperty('fileOutDir') + "/" + File.basename(file, ".*") + ".css"
opts = Sass::Exec::Sass.new(["--load-path", File.dirname(file), file, File.join($project.getProperty('fileOutDir'), File.basename(file, ".*") + ".css")])
opts.parse
end
]]>
</script>
</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Ответ 2
ZUSS - хорошая альтернатива LESS и SASS. Это похоже на МЕНЬШЕ. В отличие от LESS и SASS, обработка файлов ZUSS не требует интерпретатора JavaScript.
Отказ от ответственности: я являюсь разработчиком ZUSS. Я разработал его просто потому, что я не могу найти четкое решение для Java.
Ответ 3
Существует один проект: http://code.google.com/p/jsass/ (но он находится на очень ранней стадии).
Если вас интересует Less, для него есть готовая к использованию версия Java: http://www.asual.com/lesscss/
Ответ 4
Вы также можете взглянуть на Оптимизатор веб-ресурсов 4 J, который позволяет много вещей (минимизация, слияние ресурсов) и поддерживает меньше CSS (во время выполнения, насколько я знаю).
Это означает: вы добавляете фильтр wro4j в свой web.xml, и когда вы запрашиваете CSS, ваши файлы .scss(или .saas) скомпилируются в стандартный CSS.
Я еще не использовал его, но он кажется более продвинутым, чем другие перечисленные здесь продукты.
Фактически, я читал комментарии на веб-сайте Less for Java (http://www.asual.com/lesscss/), а WRO4J использует эту библиотеку, чтобы обеспечить ее "на лету Меньше компиляции". Поэтому я думаю, что для Java - это путь меньше.
Ответ 5
Знаете ли вы, что веб-инфраструктура Vaadin поставляется с собственным встроенным компилятором Sass? См. https://vaadin.com/blog/-/blogs/state-of-sass-support-in-vaadin-7-today...
Ответ 6
Я лично считаю SASS синтаксис глубоко, ужасно раздражающим. Для толпы Ruby/Python это может стать второй натурой; для меня как Java-парня - не так много. Я сильно предпочитаю LESS, который основывается на синтаксисе CSS вместо того, чтобы придумать новый. Это имеет приятное дополнительное преимущество в том, что вы можете использовать существующие файлы CSS "как есть" и при необходимости включать функции LESS.
Тем не менее, ни SASS, ни LESS не имеют портов java, насколько я знаю. Однако оба они основаны на рубине, поэтому вы можете установить их в JRuby. Единственная проблема с этим подходом - это JRuby, который медленно замедляет работу. Это не огромная сделка, потому что вы, вероятно, собираетесь использовать мониторинг файлов в процессе разработки (и как только он запускается, он работает очень плавно), и вам не будет так много внимания, что ваша сборка займет несколько секунд дольше во время развертывания.
Существуют также некоторые PHP-реализации, такие как LessPhp, xCSS и другие. Однако не пробовали их лично.
Ответ 7
Кажется, что есть один раз (развитый, вероятно, спустя некоторое время после того, как этот вопрос был задан)
Ответ 8
Учитывая, что SASS необходимо преобразовать в CSS для использования, что не так с использованием sass2css, который распространяется с Ruby SASS?
Ответ 9
Вы можете попробовать этот фильтр, который я только что собрал - https://github.com/darrinholst/sass-java
Ответ 10
Я знаю, что опаздываю на вечеринку, но это подход, который я использовал для использования SASS в проекте Java с конструкцией Ant: http://workingonthecoolstuff.blogspot.com/2011/02/using-sass-in-ant-build.html Подводя итог, я делаю сборку на машине с установленными Ruby и Sass, поэтому было так же просто, как вызвать команду sass/приложение с использованием задачи Ant "apply" с набором файлов, который включает в себя все файлы SCSS/SASS.
Ответ 11
Я использую Compass и Sass в своем проекте eclipse с помощью Ant.
Я следил за этим учебником здесь:
http://caueguerra.com/tutorial-using-sass-in-a-java-project
Компас расширяет Sass и позволяет использовать другие дополнительные функции.
Ответ 12
Sassc - это реализация командной строки на C, которую легко добавить в процесс сборки. Основываясь на авторах, я бы сказал, что он должен оставаться в курсе sass:
Сасс был первоначально создан со-создателем этой библиотеки, Хэмптон Кэтлин (@hcatlin). Расширение и продолжающаяся эволюция языка были результатом многолетней работы Натана Вайзенбаума (@nex3) и Криса Эппштейна (@chriseppstein).