сжатие maven yui на войне: война - PullRequest
       23

сжатие maven yui на войне: война

5 голосов
/ 08 августа 2009

Я пытаюсь автоматически сжать CSS и JS, используя maven и этот плагин . Я хочу сжать, когда цель войны будет выполнена, но я не понимаю, как:

<build>
  <finalName>${artifactId}-${version}-production</finalName>
  <plugins>
    <plugin>
      <groupId>net.sf.alchim</groupId>
      <artifactId>yuicompressor-maven-plugin</artifactId>
      <executions>
        <execution>
          <configuration>
            <gzip>true</gzip>
            <nosuffix>true</nosuffix>
          </configuration>
          <goals>
            <goal>compress</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

Ответы [ 2 ]

8 голосов
/ 08 августа 2009

Вам нужно привязать выполнение к фазе, чтобы оно было выполнено, когда вы запустите военный пакет. Это доступные фазы , к которым вы можете привязать военную упаковку.

<plugin>
  <groupId>net.sf.alchim</groupId>
  <artifactId>yuicompressor-maven-plugin</artifactId>
  <executions>
    <execution>
      <id>compress</id>
      <phase>process-resources</phase>
      ...<!--rest of config is fine-->

Обновление: файлы js.gz не генерируются или просто не включены в войну?

Еще одна вещь, которую нужно проверить, если вы все еще не видите контент в войне, - это то, что ресурсы должны быть в src / main / resources , а не src / main / webapp . Плагин yuicompressor будет обрабатывать js-файлы в src / main / webapp , но они не будут включены в финальную войну.

Обновление 2: перечитайте ваш вопрос, увидев ваш ответ, я бы неправильно понял цель, которую вы выполняли. Чтобы избежать двух целей, вы можете сделать одно из следующих:

  1. Попробуйте вместо запуска цели войны запустить install или package , это вызовет стандартный жизненный цикл, а плагин yuicompressor будет запущен на этапе ресурсов процесса.
  2. В качестве альтернативы измените фазу, с которой связана цель yuicompressor в приведенном выше примере, на пакет , чтобы он активировался при запуске войны: цель войны.
3 голосов
/ 09 августа 2009

по какой-то странной причине war:war не вызывает плагин в фазе process-resources: я просто добавил пользовательское меню на nb 6.7, которое сначала вызывает compile, затем war:war

...