我最近使用类似技术LessCss走了同一条路.起初我尝试在我的构建生命周期中嵌入JRuby.但不幸的是,Maven + JRuby是一个怪物,它很慢,巨大而且有些错误(有一半时间甚至没有启动,因为它会抱怨它正在运行的文件路径).
幸运的是,现在有一个LessCss的JavaScript端口,我现在通过Mozilla Rhino嵌入它.我在这篇博文中描述了这个过程.
昨天虽然我把它提升到了一个新的水平,制作一个Maven LessCss插件来最小化POM配置和代码重复.不幸的是我不能分享它,因为它是我当前客户端的专有代码,但解决方案很简单:
使用GMaven创建插件,创建一个调用LessCss编译器的抽象基mojo和几个为不同资源集配置基mojo的具体实现:
例如
lesscss:compile<resources>到
${project.build.outputDirectory}lesscss:test-compile<testResources>到
${project.build.testOutputDirectory}lesscss:war-compilesrc/main/webapp到
${project.build.directory}/${project.build.finalName}
,分解战争目录)因此,虽然我无法帮助您使用SASS(除了您要求auth或将其移植到Groovy,Java或JavaScript),我想我已经向您展示了一个可行的替代方案.
当然你也可以在没有Groovy的java中实现Maven插件(也可以通过Rhino嵌入JavaScript),但我认为在Groovy中它更容易.