Плагин wro4j maven: как исключить файлы для jshint? - PullRequest
1 голос
/ 29 ноября 2011

Мне нужно исключить библиотеки (например, jquery, knockoutjs, jqueryMobile и некоторые расширения ...) для jsHint.

но для других целей они мне нужны.

EDIT:

Я создал 2 файла wro, но все же он принимает все targetGroups.

wro2.xml с утилитой, приложение wro.xml с утилитами, библиотеками, приложениями, 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>

1 Ответ

2 голосов
/ 29 ноября 2011

У вас есть следующие опции:

  1. Использовать отдельные группы только для обработки jshint
  2. Создать другую модель, предоставив wroFile для использования только для цели jshint
  3. Создайте пользовательскую реализацию wroManagerFactory и программно исключите файлы, которые вы не хотите обрабатывать.

В любом случае вам придется дважды объявить плагин в 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>
...