WRO4J Maven Plugin: ¿Cómo excluyo los archivos para jshint?
-
25-10-2019 - |
Pregunta
Necesito excluir las liburas (como jQuery, knockoutjs, jQueryMobile y algunas extensiones ...) para jshint.
Pero para los otros objetivos los necesito todos.
EDITAR:
He creado 2 archivos WRO, pero aún así requiere todos los grupos de destino.
wra2.xml con Utils, App wro.xml con Utils, bibliotecas, aplicación, jQueryMobile
<plugins>
<plugin>
<groupId>ro.isdc.wro4j</groupId>
<artifactId>wro4j-maven-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>ex1</id>
<goals>
<goal>jshint</goal>
</goals>
</execution>
</executions>
<configuration>
<!--jshint options-->
<options>jquery,devel,evil,noarg,eqnull</options>
<failNever>false</failNever>
<targetGroups>utils,app</targetGroups>
<wroFile>${basedir}/src/main/webapp/WEB-INF/wro2.xml</wroFile>
</configuration>
</plugin>
<plugin>
<groupId>ro.isdc.wro4j</groupId>
<artifactId>wro4j-maven-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>ex2</id>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<configuration>
<!--compile options-->
<targetGroups>utils,libraries,app,jQueryMobile</targetGroups>
<minimize>true</minimize>
<destinationFolder>${basedir}/src/main/webapp/wro/</destinationFolder>
<cssDestinationFolder>${basedir}/target/webapp/css/</cssDestinationFolder>
<jsDestinationFolder>${basedir}/target/webapp/js/</jsDestinationFolder>
<contextFolder>${basedir}/src/main/webapp/</contextFolder>
<ignoreMissingResources>false</ignoreMissingResources>
<wroFile>${basedir}/src/main/webapp/WEB-INF/wro.xml</wroFile>
<wroManagerFactory>ro.isdc.wro.extensions.manager.standalone.GoogleStandaloneManagerFactory</wroManagerFactory>
</configuration>
</plugin>
</plugins>
Solución
Tienes las siguientes opciones:
- Use grupos separados solo para el procesamiento de jshint
- Cree un modelo diferente proporcionando el wrofile para ser utilizado solo para el objetivo de JSHint
- Cree una implementación personalizada de WromanagerFactory y excluya programáticamente los archivos que no desea procesarse.
En cualquier caso, tendrá que declarar el complemento dos veces en pom.xml, ya que las opciones de configuración diferirán.
EDITAR:
La solución está relacionada con la configuración de ejecución de Maven en lugar de WRO4J-Maven-Plugin.
Entonces, en lugar de declarar el mismo complemento dos veces con diferentes configuraciones, lo declara una vez con dos ejecuciones y cada ejecución tiene su propia configuración. Ejemplo:
<plugin>
<groupId>ro.isdc.wro4j</groupId>
<artifactId>wro4j-maven-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>ex1</id>
<goals>
<goal>run</goal>
</goals>
<configuration>
<targetGroups>utils,libraries,app,jQueryMobile</targetGroups>
</configuration>
</execution>
<execution>
<id>ex2</id>
<goals>
<goal>jshint</goal>
</goals>
<configuration>
<options>jquery,devel,evil,noarg,eqnull</options>
<failNever>false</failNever>
<targetGroups>utils,app</targetGroups>
<wroFile>${basedir}/src/main/webapp/WEB-INF/wro2.xml</wroFile>
</configuration>
</execution>
</executions>
</plugin>