плагин WRO4J Maven: Как исключить файлы для JSHINT?
-
25-10-2019 - |
Вопрос
Мне нужно исключить Libaries (например, jquery, nockoutjs, jquerymobile и некоторые размер ...) для jshint.
Но для других целей мне все нужны.
РЕДАКТИРОВАТЬ:
Я создал 2 файла WRO, но все же это требует всех целевых групп.
WRO2.xml с utils, app wro.xml с Utils, библиотеками, приложением, 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>
Решение
У вас есть следующие варианты:
- Используйте отдельные группы только для обработки jshint
- Создайте другую модель, предоставив Wroofile для использования только для целей JSHINT
- Создайте пользовательскую реализацию WremanagerFactory и программно исключайте файлы, которые вы не хотите обрабатывать.
В любом случае вам придется дважды объявить плагин в pom.xml, поскольку параметры конфигурации будут отличаться.
РЕДАКТИРОВАТЬ:
Решение связано с конфигурацией выполнения Maven, а не с Wro4J-Maven-Plugin.
Таким образом, вместо того, чтобы объявлять один и тот же плагин дважды с различными конфигурациями, вы объявляете его один раз с двумя выполнениями, и каждое выполнение имеет свою собственную конфигурацию. Пример:
<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>