Я шукаю реалізацію SASS в Java (може використовуватися з JSP / JSF). Для Python я знайшов CleverCSS, але для Java немає нічого. Хтось чув щось про такий інструмент для створення CSS?
Я шукаю реалізацію SASS в Java (може використовуватися з JSP / JSF). Для Python я знайшов CleverCSS, але для Java немає нічого. Хтось чув щось про такий інструмент для створення CSS?
Відповіді:
З АНТ:
<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>
require 'libs/sass-[VERSION]/lib/sass'
це не спрацювало як відносне для мене, мені довелося покласти абсолютне з майна, яке було в мене в руках. Тож це працювало зrequire $project.getProperty('project.root') + '/sass/sass-3.2.9/lib/sass'
ZUSS - хороша альтернатива LESS і SASS. Це схоже на LESS. На відміну від LESS та SASS, для обробки файлів ZUSS не потрібен інтерпретатор JavaScript.
Застереження: Я розробник ZUSS. Я розробив його просто тому, що не можу знайти чіткого рішення для Java.
Існує один проект: http://code.google.com/p/jsass/ (але це на дуже ранній стадії).
Якщо вас цікавить Less, для нього існує готова до використання версія Java: http://www.asual.com/lesscss/
Ви також можете заглянути в Оптимізатор веб-ресурсів 4 J (WRO4J) який дозволяє багато чого (мініфікація, злиття ресурсів) і підтримує менше CSS (на час, наскільки я знаю).
Це означає: ви додаєте фільтр wro4j до свого web.xml, і коли ви просите CSS, ваші файли .scss (або .saas) компілюються до стандартного CSS.
Я ще не використовував його, але він здається більш досконалим, ніж інші продукти, перелічені тут.
Насправді я читав коментарі на веб-сайті Less for Java ( http://www.asual.com/lesscss/ ), і WRO4J використовує цю бібліотеку, щоб забезпечити компіляцію "на льоту". Тому я думаю, що Менше для Java - це шлях.
Чи знали ви, що веб-фреймворк Vaadin постачається із власним вбудованим компілятором Sass? Дивіться https://vaadin.com/blog/-/blogs/state-of-sass-support-in-vaadin-7-today ...
Мені особисто синтаксис SASS здається глибоко, жахливо дратує. Для натовпу Ruby / Python це може стати другою натурою; для мене, як для хлопця з Java, - не так вже й багато. Я настійно вважаю за краще МЕНШЕ яке базується на синтаксисі CSS, замість того, щоб придумувати новий. Це має приємну додаткову перевагу у тому, що ви можете використовувати наявні файли CSS «як є» та включати БЕЗ функцій за потреби.
Тим не менш, ні SASS, ні LESS не мають портів Java, наскільки мені відомо. Проте обидва базуються на рубіні, тому ви можете встановити їх під JRuby . Єдиною проблемою такого підходу є JRuby, що розумно-повільно запускається. Однак це не велика справа, тому що ви, швидше за все, будете використовувати моніторинг файлів у розробці (і після запуску він працює дуже гладко), і ви не будете так піклуватися про те, що ваша збірка займає кілька секунд довше під час розгортання .
Є також деякі реалізації на основі PHP, такі як LessPhp , xCSS та інші. Однак я не пробував їх особисто.
Здається, все-таки є одна (розроблена, мабуть, через деякий час після того, як було задано це питання)
<dependency><groupId>org.jruby</groupId><artifactId>jruby-complete</artifactId><version>1.6.7.1</version></dependency>
Я віддав би перевагу тому, що не мало ніяких залежностей.
Враховуючи те, що SASS потрібно перетворити на CSS, щоб бути придатним для використання, що поганого у використанні sass2css, який розповсюджується за допомогою Ruby SASS?
Ви можете спробувати цей фільтр, який я щойно склав - https://github.com/darrinholst/sass-java
Я використовую Compass & Sass у своєму проекті затемнення за допомогою Ant.
Я дотримувався цього підручника тут:
http://caueguerra.com/tutorial-using-sass-in-a-java-project
Компас розширює Сасс і дозволяє використовувати інші мої додаткові послуги.
Я знаю, що запізнився на вечірку, але саме такий підхід я застосував до використання SASS у проекті Java зі збіркою Ant: http://workingonthecoolstuff.blogspot.com/2011/02/using-sass-in-ant -build.html Підсумовуючи, я роблю збірку на машині з встановленими Ruby і Sass, так що це було так само просто, як виклик команди / програми sass за допомогою завдання Ant "застосувати" з набором файлів, що включає всі SCSS / SASS файлів.
Sassc - це реалізація командного рядка на C, яку слід легко додати до процесу збірки. Виходячи з авторів, я б сказав, що він повинен бути в курсі sass:
Спочатку Sass був створений співавтором цієї бібліотеки Хемптоном Кетліном (@hcatlin). Розширення та подальша еволюція мови було результатом багаторічної роботи Натана Вайценбаума (@ nex3) та Кріса Еппштейна (@chriseppstein).