2009-08-08 3 views
5

Je suis en train de compresser automatiquement CSS et JS en utilisant maven et this plugin. Je veux compresser quand la guerre de but est exécuté, mais je ne suis pas comprendre comment:maven yui compression sur la guerre: guerre

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

Répondre

3

pour une raison bizarre war:war ne remet pas le plug-in dans la phase process-resources: Je viens d'ajouter un menu personnalisé sur nb 6.7 qui appellent d'abord compile, puis war:war

8

Vous devez lier l'exécution à une phase de sorte qu'il sera exécuté lorsque vous exécutez l'emballage de guerre. Ce sont les available phases que vous pouvez lier à des emballages de guerre.

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

Mise à jour: Les fichiers js.gz ne pas être généré ou tout simplement pas compris dans la guerre?

Une chose supplémentaire pour vérifier si vous ne voyez toujours pas le contenu de la guerre est que les ressources doivent être sous src/main/resources, non src/main/webapp. Le plugin yuicompressor traitera les fichiers js dans src/main/webapp, mais ils ne seront pas inclus dans la guerre finale.

Mise à jour 2: relisez votre question après avoir vu votre réponse, j'aurais mal lu l'objectif que vous utilisiez. Pour éviter deux objectifs en cours d'exécution, vous pouvez faire un de ces:

  1. Essayez au lieu de courir le but de la guerre, exécutez install package ou , ce invoquera le cycle de vie standard, et le plug-in yuicompressor sera invoquée la phase des ressources du processus.
  2. Vous pouvez également modifier la phase dans laquelle l'objectif yuicompressor est lié dans l'exemple ci-dessus à package afin qu'il soit activé lorsque vous exécutez le war: war but.
+0

fait, mais il ne fonctionne pas sous maven 2.2.0 ni maven 2.1.0 – dfa

+0

cela a bien fonctionné sur mon projet de test, les fichiers compressés sont sortis sur cible/classes –

+0

fixe merci quand même :) – dfa

Questions connexes