web-dev-qa-db-fra.com

Plugin Maven pour concaténer et minimiser javascript

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

Vous devriez jeter un oeil à plugin mui de compression yui qui sonne comme la chose dont vous avez besoin.

15
khmarbaise

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

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.

4
Samuel Santos