SASS для Java?

Я ищу реализацию SASS на Java (может использоваться с JSP/JSF). Для Python я нашел CleverCSS, но для Java ничего нет. Кто-нибудь слышал что-то об этом виде инструмента для генерации CSS?

Ответ 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 - это путь меньше.

Ответ 6

Я лично считаю SASS синтаксис глубоко, ужасно раздражающим. Для толпы Ruby/Python это может стать второй натурой; для меня как Java-парня - не так много. Я сильно предпочитаю LESS, который основывается на синтаксисе CSS вместо того, чтобы придумать новый. Это имеет приятное дополнительное преимущество в том, что вы можете использовать существующие файлы CSS "как есть" и при необходимости включать функции LESS.

Тем не менее, ни SASS, ни LESS не имеют портов java, насколько я знаю. Однако оба они основаны на рубине, поэтому вы можете установить их в JRuby. Единственная проблема с этим подходом - это JRuby, который медленно замедляет работу. Это не огромная сделка, потому что вы, вероятно, собираетесь использовать мониторинг файлов в процессе разработки (и как только он запускается, он работает очень плавно), и вам не будет так много внимания, что ваша сборка займет несколько секунд дольше во время развертывания.

Существуют также некоторые PHP-реализации, такие как LessPhp, xCSS и другие. Однако не пробовали их лично.

Ответ 7

Кажется, что есть один раз (развитый, вероятно, спустя некоторое время после того, как этот вопрос был задан)

https://github.com/Jasig/sass-maven-plugin

Ответ 8

Учитывая, что SASS необходимо преобразовать в CSS для использования, что не так с использованием sass2css, который распространяется с Ruby SASS?

Ответ 10

Я знаю, что опаздываю на вечеринку, но это подход, который я использовал для использования SASS в проекте Java с конструкцией Ant: http://workingonthecoolstuff.blogspot.com/2011/02/using-sass-in-ant-build.html Подводя итог, я делаю сборку на машине с установленными Ruby и Sass, поэтому было так же просто, как вызвать команду sass/приложение с использованием задачи Ant "apply" с набором файлов, который включает в себя все файлы SCSS/SASS.

Ответ 12

Sassc - это реализация командной строки на C, которую легко добавить в процесс сборки. Основываясь на авторах, я бы сказал, что он должен оставаться в курсе sass:

Сасс был первоначально создан со-создателем этой библиотеки, Хэмптон Кэтлин (@hcatlin). Расширение и продолжающаяся эволюция языка были результатом многолетней работы Натана Вайзенбаума (@nex3) и Криса Эппштейна (@chriseppstein).