我正在使用wro4j-maven-plugin
预处理我的.js
,.css
和.less
资源。
当预处理器失败时,例如当.less
文件包含语法错误时,插件只会在构建中输出堆栈跟踪并继续构建。
这导致必须监视构建过程,或者有资源中断的风险。有没有办法让这个插件failOnError
与AntRun
一样?
的pom.xml:
<plugin>
<groupId>ro.isdc.wro4j</groupId>
<artifactId>wro4j-maven-plugin</artifactId>
<version>1.4.5</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<configuration>
<minimize>true</minimize>
<jsDestinationFolder>${basedir}/WebContent/resources/min/js/</jsDestinationFolder>
<cssDestinationFolder>${basedir}/WebContent/resources/min/css/</cssDestinationFolder>
<contextFolder>${basedir}/WebContent/</contextFolder>
<wroFile>${basedir}/WebContent/WEB-INF/wro.xml</wroFile>
<extraConfigFile>${basedir}/WebContent/WEB-INF/wro.properties</extraConfigFile>
<ignoreMissingResources>false</ignoreMissingResources>
<wroManagerFactory>ro.isdc.wro.maven.plugin.manager.factory.ConfigurableWroManagerFactory</wroManagerFactory>
</configuration>
</plugin>
wro.properties:
preProcessors=cssUrlRewriting,cssImport,yuiJsMin
postProcessors=lessCss,yuiCssMin
答案 0 :(得分:0)
发生异常时lessCss处理器的默认行为是中止处理并保持资源不变。这背后的原因是,当使用lessCss处理有效的css时,它可能会失败,因为它从Less的角度来看语法无效。这通常在您处理混合资源(css&amp; less)时发生。
下一个wro4j版本(1.4.7)将在资源处理期间处理异常时更改默认行为。因此,当发生异常时 - 整个处理将失败(可以配置此行为)。
早期版本(包括1.4.5)有一种解决方法。您可以扩展LessCssProcessor并覆盖onException方法。例如:
/**
* Invoked when a processing exception occurs.
*/
protected void onException(final WroRuntimeException e) {
throw e;
}
通过使用这个新处理器,只要处理器出现故障,您的构建就会失败。