Maven plugin pour concat et minify javascript

j'ai 100s de fichiers javascript dans la hiérarchie des dossiers et je veux deux ensembles de sortie. l'une est d'avoir une version concaténée pour les besoins du débogage et l'autre est d'avoir une version concat + minfy. Je suis en train d'utiliser le plugin ci-dessous mais en cela je dois fournir chaque fichier que je dois miniifier. Je suis à la recherche d'un plugin qui n'a besoin que du dossier parent et qui satisfait aux conditions ci-dessus.

<groupId>com.samaxes.maven</groupId>
<artifactId>minify-maven-plugin</artifactId>
<version>1.7</version>
19
demandé sur Dmitry 2013-05-25 11:09:26

3 réponses

Vous devriez jeter un oeil à yui compression plugin maven ce qui ressemble à la chose dont vous avez besoin.

14
répondu khmarbaise 2013-05-25 10:20:20

Yui compression maven plugin a travaillé pour moi. Je vais montrer 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.

  • préprocessaggregates - traiter l'agrégation avant la minification.
  • agrégations - Pour regrouper les multiples ressources dans la hiérarchie des dossiers pour un seul fichier.
  • agrégation - il peut y avoir plusieurs éléments d'agrégation à l'intérieur des agrégations parentes.
  • insertNewLine - insérer newline après chaque fichier eof, tout en concaténation / agrégation de fichiers.
  • inputDir - répertoire Parent à l'intérieur duquel les fichiers seraient recherchés pour concaténation/agrégation.
  • sourceDirectory - Répertoire dans lequel les fichiers serait j'ai cherché minification.
  • outputDirectory - répertoire sous lequel la sortie miniifiée serait placée.
  • nosuffix - si défini à true, alors le plugin n'ajoutera pas '-min' au fichier miniifié.

Il y a 2 types de <exclude> propriété:-

  • la première fait partie de l'agrégation, qui exclut fondamentalement les fichiers de l'agrégation.
  • Second fait partie du plugin pour exclure les fichiers de minification.

Plugin code:

<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>
32
répondu Mady 2014-11-05 13:47:51

Mady, Minify le Plugin Maven supporte aussi les patterns include/exclude.

Veuillez prendre un coup d'oeil à l' ordre lexicographique page Exemple de la documentation du plugin.

4
répondu samaxes 2013-05-27 01:03:29