J'ai des centaines de fichiers javascript dans la hiérarchie des dossiers et je veux deux ensembles de sortie. l'un est d'avoir une version concaténée à des fins de débogage et l'autre est d'avoir une version concat + minfy. J'utilise actuellement le plugin ci-dessous, mais dans ce cas, je dois fournir chaque fichier que je dois réduire. Je recherche un plugin qui n'a besoin que du dossier parent et remplit les conditions ci-dessus.
<groupId>com.samaxes.maven</groupId>
<artifactId>minify-maven-plugin</artifactId>
<version>1.7</version>
Vous devriez jeter un oeil à plugin mui de compression yui qui sonne comme la chose dont vous avez besoin.
plugin maven de compression YUI a fonctionné pour moi. Je vais montrer tout ce que j'ai fait pour que ça marche.
- Pour concaténer tous les fichiers js, j'ai utilisé l'agrégation.
Détails des éléments utilisés.
- preProcessAggregates - Pour traiter l'agrégation avant la minification.
- agrégations - Pour agréger les multiples ressources de la hiérarchie des dossiers dans un seul fichier.
- agrégation - Il peut y avoir plusieurs éléments d'agrégation à l'intérieur des agrégations parent.
- insertNewLine - Insère une nouvelle ligne après chaque eof de fichier, pendant la concaténation/agrégation de fichiers.
- inputDir - Répertoire parent dans lequel les fichiers seront recherchés pour la concaténation/agrégation.
- sourceDirectory - Répertoire dans lequel les fichiers seraient recherchés pour la minification.
- outputDirectory - Répertoire dans lequel la sortie réduite serait placée.
- nosuffix - S'il est défini sur true, le plugin n'ajoutera pas '-min' au fichier minifié.
Il existe 2 types de <exclude>
propriété:-
- Le premier fait partie de l'agrégation, qui exclut essentiellement les fichiers de l'agrégation.
- Le second fait partie du plugin pour exclure les fichiers de la minification.
Code du plugin: -
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<preProcessAggregates>true</preProcessAggregates>
<aggregations>
<aggregation>
<insertNewLine>true</insertNewLine>
<output>${basedir}/target/single.js</output>
<inputDir>${basedir}/src/main/resources/js</inputDir>
<includes>
<include>**/*.js</include>
</includes>
<excludes>
<exclude>**/*abc.js</exclude>
<exclude>**/compressed.css</exclude>
</excludes>
</aggregation>
</aggregations>
<excludes>
<exclude>**/*-min.js</exclude>
<exclude>**/*.min.js</exclude>
<exclude>**/*-min.css</exclude>
<exclude>**/*.min.css</exclude>
</excludes>
<jswarn>false</jswarn>
<nosuffix>false</nosuffix>
<sourceDirectory>${basedir}/target</sourceDirectory>
<outputDirectory>${basedir}/target</outputDirectory>
</configuration>
<executions>
<execution>
<id>compress_js_css</id>
<phase>process-resources</phase>
<goals>
<goal>compress</goal>
</goals>
</execution>
</executions>
</plugin>
Mady, Minify Maven Plugin prend également en charge les modèles d'inclusion/exclusion.
Veuillez consulter la page d'exemple Ordre lexicographique de la documentation du plugin.