Java库用于管理CSS的扩展和/或重用?
问题的原因:有人在寻找一种在Eclipse中使用Sass的解决方案。
解决方法:在stackoverflow的一个问题中,有人提供了一个使用Sass在Eclipse中的良好解决方案。
以下是整理后的文章:
有人在stackoverflow上提出了一个问题,他们正在寻找一种在Eclipse中使用Sass的解决方案。幸运的是,有人在同一个问题的答案中提供了一个很好的解决方案。
解决方案的代码如下:
import com.github.sommeri.less4j.LessCompiler; import com.github.sommeri.less4j.LessSource; public class LessCSSCompiler { public static void main(String[] args) throws Exception { LessCompiler compiler = new LessCompiler(); String lessFile = "path/to/your/less/file.less"; String cssFile = "path/to/output/css/file.css"; LessSource lessSource = new LessSource(new File(lessFile)); compiler.compile(lessSource, new File(cssFile)); } }
这段代码使用了一个名为"less4j"的Java库,它允许我们在Eclipse中使用Sass。通过将需要编译的.less文件和输出的.css文件的路径传递给代码中的相应变量,我们可以使用这个代码段来实现在Eclipse中使用Sass的需求。
通过在stackoverflow上找到一个问题的答案,我们找到了一个使用Sass在Eclipse中的解决方案。这个解决方案使用了一个名为"less4j"的Java库,通过编写一小段代码,我们可以在Eclipse中管理和重用CSS文件。
最近我也走过同样的道路,使用了类似的技术LessCss。起初,我尝试在我的构建生命周期中嵌入JRuby。但不幸的是,Maven + JRuby是个怪物,它运行慢、庞大且有很多bug(有一半的时间它甚至都无法启动,因为它抱怨运行的文件路径)。
幸运的是,现在有了LessCss的JavaScript版本,我现在通过Mozilla Rhino嵌入它。我在这篇博文中描述了这个过程。
不过,昨天我将其提升到了一个新的水平,创建了一个Maven LessCss插件,以减少POM配置和代码重复。不幸的是,我不能分享它,因为它是我目前客户的专有代码,但解决方案很简单:使用GMaven创建插件,创建一个调用LessCss编译器的抽象基础mojo,并创建多个具体实现来为不同的资源集配置基础mojo,例如:
lesscss:compile - 从所有
lesscss:test-compile - 从所有
lesscss:war-compile - 从所有src/main/webapp编译到${project.build.directory}/${project.build.finalName}(即exploded war目录)
所以虽然我无法帮助你解决SASS问题(除非你要求作者将其移植到Groovy、Java或JavaScript),但我认为我已经向你展示了一个可行的替代方案。
当然,你也可以用Java实现一个没有Groovy的Maven插件(也可以通过Rhino嵌入JavaScript),但我认为用Groovy更容易。
在我读到你的回复之前上班的路上,我在想写一个Groovy构建器来处理CSS和类似SASS的微型DSL,使用Servlet过滤器或Servlet来提供CSS(就像JSP/GSP对HTML的作用一样)。太棒了!
正如我在博客文章中写的,对于Less和Wicket,已经存在一个非常相似的解决方案:richardnichols.net/2010/06/…。顺便说一下,如果你真的写了这样一个Groovy构建器,请在这里发布。
我现在考虑在两者之间寻找一个折中的方法。Servlet过滤器/Servlet运行Less.js + Rhino。基本上是你的想法,但不依赖于Wicket(我没有任何反对意见)。我会看看能否在这个周末发布一个可用的版本在GitHub上。非常棒的博客!-- 编辑 删除之前的内容,我看到Asual已经做过了。
你见过wro4j吗?你能在你的回复中添加以下链接给其他人吗: