2009-08-08 13 views
5

Sto provando a comprimere automaticamente sia CSS che JS usando Maven e this plugin. Voglio comprimere quando viene eseguita la guerra gol, ma io non sto immaginando come:compressione maven yui su war: 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> 

risposta

3

per qualche strano motivo war:war non chiama il plug-in fase di process-resources: Ho appena aggiunto un menu personalizzato sulla nb 6.7 che chiamano prima compile, poi war:war

8

hai bisogno di impegnare l'esecuzione a una fase in modo che venga eseguito quando si esegue il confezionamento guerra. Questi sono gli available phases che puoi associare per l'imballaggio di guerra.

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

Aggiornamento: sono i file js.gz non viene generato o semplicemente non incluso nella guerra?

Una cosa aggiuntiva per verificare se si sta ancora non vedere il contenuto nella guerra è che le risorse dovrebbero essere sotto src/main/risorse, non src/main/webapp. Il plugin yuicompresser elaborerà i file js in src/main/webapp, ma non saranno inclusi nella guerra finale.

Aggiornamento 2: rileggere la tua domanda dopo aver visto la tua risposta, ho letto male l'obiettivo che stavi correndo. Per evitare l'esecuzione di due obiettivi che si può fare uno di questi:

  1. Prova invece di correre l'obiettivo di guerra, gestita installare o pacchetto, questo richiamerà il ciclo di vita normale, e il plugin yuicompressor verrà richiamato in la fase delle risorse di processo.
  2. In alternativa, modificare la fase in cui l'obiettivo yuicompressor è associato nell'esempio precedente al pacchetto in modo che venga attivato quando si esegue la guerra: obiettivo di guerra.
+0

fatto, ma non funziona in maven 2.2.0 nor maven 2.1.0 – dfa

+0

questo ha funzionato bene sul mio progetto di test, i file compressi vengono emessi per target/classi –

+0

risolto grazie comunque :) – dfa