用于Java的SASS实现?

我正在寻找Java中的SASS实现(可以和JSP / JSF一起使用)。 对于Python我已经find了CleverCSS,但是Java没有任何东西。 任何人都听说过这种生成CSS的工具吗?

用ANT:

  1. 下载JRuby完整的jar文件( JRuby Complete jar下载页面 )
  2. 下载最新的HAML / SASS代码( HAML / SASS tarball ),并提取它。 把它放在“/ libs / sass- [VERSION]”
  3. 将以下内容添加到一个ant构build文件。
  4. 将脚本中的[VERSION]replace为相应版本的JRuby和SASS
  5. 运行ant脚本,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> 

ZUSS是LESS和SASS的不错select。 它类似于LESS。 与LESS和SASS不同,ZUSS文件的处理不需要JavaScript解释器。

免责声明:我是ZUSS的开发者。 我开发它只是因为我找不到一个整洁的Java解决scheme。

有一个项目: http : //code.google.com/p/jsass/ (不过目前还处于初级阶段)。

如果您对Less感兴趣,可以使用Java版本: http : //www.asual.com/lesscss/

您也可以看一下Web Resource Optimizer 4 J ,它允许大量的事情(缩小,资源合并),并支持更less的CSS(据我所知在运行时)。

这意味着:你添加wro4jfilter到你的web.xml,当你要求一个CSS,你的.scss(或.saas)文件被编译成标准的CSS。

我还没有使用它,但似乎比这里列出的其他产品更先进。


实际上,我正在阅读关于Less for Java网站( http://www.asual.com/lesscss/ )的评论,WRO4J使用这个库来提供它“即时编译”。 所以我认为对于Java而言,Less就是要走的路。

您是否知道Vaadin Web框架带有自己的内置Sass编译器? 见https://vaadin.com/blog/-/blogs/state-of-sass-support-in-vaadin-7-today

我个人觉得SASS的语法很深,很可怕。 对于Ruby / Python人群来说,它可能是第二性质的; 对于我来说,就像Java的人 – 不是那么多。 我非常喜欢LESS ,它build立在CSS语法之上,而不是提出一个新的。 这有一个很好的附加优势,可以使用现有的CSS文件“按原样”,并根据需要合并LESSfunction。

也就是说,据我所知,SASS和LESS都没有Java端口。 两者都是基于ruby的,所以你可以在JRuby下安装它们。 这种方法唯一的问题是,JRuby启动速度慢,思维麻木。 但这并不是什么大问题,因为在开发过程中可能会使用文件监控(一旦它启动,运行就会非常stream畅),而且在部署过程中, 。

还有一些基于PHP的实现,如LessPhp , xCSS等。 虽然没有亲自尝试过。

似乎有一个毕竟(这个问题之后可能发展了一阵子)

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

鉴于SASS必须转换为CSS才能使用,使用sass2css与Ruby SASS一起分发有什么问题?

你可以尝试这个filter,我只是放在一起 – https://github.com/darrinholst/sass-java

我在使用Ant的eclipse项目中使用了Compass&Sass。

我在这里跟着这个教程:

http://caueguerra.com/tutorial-using-sass-in-a-java-project

指南针扩展了Sass,并允许我的其他演员。

http://compass-style.org/

我知道我迟到了,但是这是我在一个带有Ant构build的Java项目中使用SASS的方法: http : //workingonthecoolstuff.blogspot.com/2011/02/using-sass-in-ant -build.html总而言之,我在安装了Ruby和Sass的计算机上进行构build,这样就像使用包含所有SCSS / SASS的文件集的Ant“apply”任务调用sass命令/应用程序一样简单文件。

Sassc是C 语言中的一个命令行实现,应该很容易添加到构build过程中。 基于作者,我会说它应该保持与sass的最新date:

Sass最初是由这个图书馆的联合创始人汉普顿·卡特林(@hcatlin)创build的。 语言的延伸和持续演化都是Nathan Weizenbaum(@ nex3)和Chris Eppstein(@chriseppstein)多年来的努力的结果。