web-dev-qa-db-ja.com

JavaScriptを連結および縮小するMavenプラグイン

フォルダーの階層内に何百ものJavaScriptファイルがあり、2セットの出力が必要です。 1つはデバッグ用に連結バージョンを作成する方法で、もう1つは連結+最小バージョンを作成する方法です。私は現在以下のプラグインを使用していますが、ここでは縮小する必要があるすべてのファイルを提供する必要があります。親フォルダのみを必要とし、上記の条件を満たすプラグインを探しています。

<groupId>com.samaxes.maven</groupId>
<artifactId>minify-maven-plugin</artifactId>
<version>1.7</version>
22
Mady

yui圧縮mavenプラグイン を確認する必要があります。

15
khmarbaise

YUI圧縮mavenプラグイン は私のために働きました。私はそれを機能させるために私がしたすべてを示します。

  • すべてのjsファイルを連結するには、集約を使用しました。

使用される要素の詳細。

  • preProcessAggregates-縮小前に集計を処理します。
  • aggregations-フォルダ階層内の複数のリソースを1つのファイルに集約します。
  • aggregation-親集約内に複数の集約要素が存在する可能性があります。
  • insertNewLine-ファイルの連結/集約中に、各ファイルのeofの後に改行を挿入します。
  • inputDir-連結/集約のためにファイルが検索される親ディレクトリ。
  • sourceDirectory-縮小のためにファイルが検索されるディレクトリ。
  • outputDirectory-縮小された出力が配置されるディレクトリ。
  • nosuffix-trueに設定されている場合、プラグインは縮小されたファイルに「-min」を追加しません。

<exclude>プロパティには2つのタイプがあります:-

  • 1つは集計の一部で、基本的にファイルを集計から除外します。
  • 2つ目は、ファイルを縮小から除外するプラグインの一部です。

プラグインコード:-

<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プラグインは、包含/除外パターンもサポートしています。
プラグインのドキュメントの Lexicographical ordering サンプルページをご覧ください。

4
Samuel Santos