我试图在我的maven项目中实现一个LessCssProcessor。然而,我试图使用处理器的项目上有文件与CSS错误,导致CSS文件不生成。是否有可能配置处理器或项目,以便Less处理器或任何处理器只能在特定的文件组上运行。感谢所有的帮助!
将处理器只应用于有限资源集的最简单方法是使用ExtensionsAwareProcessorDecorator,示例:
ExtensionsAwareProcessorDecorator.decorate(new LessCssProcessor()).addExtension("less");
装饰的处理器应该用来代替LessCssProcessor,它只会处理扩展较少的资源(例如:style.less),而忽略其他资源。
同样的事情可以使用配置约定来实现,例如:
preProcessors=lessCss.less
注意处理器的别名有"。Less "后缀,意味着它将只应用于扩展名较少的资源。
如果你需要更复杂的东西,还有另一个可用的装饰器PathPatternProcessorDecorator。使用例子:
String[] patterns = new String[] {"/a/**/n?me.css", "*.less", "/less/*.css"}
PathPatternProcessorDecorator.include(new LessCssProcessor(), patterns);
上面的例子创建了一个修饰的处理器,它只在资源匹配所提供的模式之一时应用。如果需要排除模式,可以使用类似的方法:
String[] patterns = new String[] {"*.css", "/script/*.js"}
PathPatternProcessorDecorator.exclude(new LessCssProcessor(), patterns);
在这种情况下,如果资源匹配所提供的任何模式,则不会应用处理器。
如果现有的实现都不够好,你可以实现你自己的处理器装饰器,它以自定义的方式应用或不应用处理。