Tengo un archivo javascript que se usa para rastrear eventos usando Google Analytics. He creado diferentes cuentas para el entorno de producción y producción. La secuencia de comandos para invocar el código GA tiene un marcador de posición para mi Id. De cuenta. Los Id. De la cuenta se han especificado en los archivos de filtro. Usando el elemento webResources en el plugin de maven-war, podemos reemplazar exitosamente la propiedad en el archivo WAR final.¿Cómo minimizar un archivo javascript filtrado usando maven?
Ahora, también estamos utilizando el complemento maven-yuicompressor para minimizar y agregar todos nuestros archivos javascript. El problema es que si adjunto la ejecución del objetivo minify a la fase del paquete, el WAR se crea antes de que el Javascript se haya minimizado. Si adjunto el objetivo minify a algo anterior, el filtro no se ha aplicado hasta el momento de la minificación y se ha producido un archivo no válido.
Por lo tanto, estoy buscando una forma de ejecutar el objetivo minify entre el complemento WAR copiando los archivos JS filtrados y creando el archivo WAR. Estas son las partes pertinentes de mi pom.xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<webResources>
<resource>
<directory>src/main/webapp/js</directory>
<targetPath>js</targetPath>
<filtering>true</filtering>
</resource>
</webResources>
</configuration>
</plugin>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<goals>
<goal>compress</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
<configuration>
<linebreakpos>-1</linebreakpos>
<nosuffix>true</nosuffix>
<force>true</force>
<aggregations>
<aggregation>
<output>${project.build.directory}/${project.build.finalName}/js/mysite-min.js</output>
<inputDir>${project.build.directory}/${project.build.finalName}/js</inputDir>
<includes>
<include>jquery-1.4.2.js</include>
<include>jquery-ui.min.js</include>
<include>ga-invoker.js</include>
</includes>
</aggregation>
</aggregations>
</configuration>
</plugin>
¿Se puede unir a 'prepare-package'? –
Como mencioné antes, adjuntar algo antes de la fase del paquete no funciona, ya que el filtro no se ha aplicado hasta entonces. El complemento de guerra copia los recursos web y aplica el filtro como parte de la fase del paquete. – Chandranshu