仅在特定文件组上使用LessCssProcessor

时间:2013-06-13 23:25:46

标签: java maven less wro4j

我正在尝试在我的maven项目中实现LessCssProcessor。但是,我正在尝试使用处理器的项目有CSS错误的文件,导致css文件无法生成。是否可以配置处理器或项目,以便较少的处理器或任何处理器只能在某组文件上运行。感谢所有帮助!

1 个答案:

答案 0 :(得分:3)

仅在有限的资源集上应用处理器的最简单方法是使用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);

在这种情况下,如果资源与任何提供的模式匹配,则不会应用处理器。

如果现有的实现都不够好,您可以实现自己的处理器装饰器,它以自定义方式应用或不应用处理。