2009-08-08 2 views
5

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

<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> 

ответ

3

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

8

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

<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/основные/ресурсов, не SRC/главная/WebApp. Плагин yuicompressor обрабатывает файлы js в src/main/webapp, но они не будут включены в финальную войну.

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

  1. Попробуйте вместо запуска военной цели, запустить установить или пакет, это будет вызывать стандартный жизненный цикл, и yuicompressor плагин будет вызван в фазу технологических ресурсов.
  2. Альтернативно изменить фазу цели юикомпрессора в приведенном выше примере на пакет, так что он активируется при запуске войны: цель войны.
+0

сделано, но это не работает под maven 2.2.0 или maven 2.1.0 – dfa

+0

это отлично работало в моем тестовом проекте, сжатые файлы выводятся в целевые/классы –

+0

исправлено спасибо в любом случае :) – dfa

Смежные вопросы