yuicompressor-maven-pluginでJS、CSSファイルを圧縮・難読化

Webサイトを作成していて、Javascriptのコードが増えてきた場合、Javascript圧縮&難読化をしたい場合が出てくる。
その処理を、mavenのwar作成処理の中に加えたい。

そんな時に、yuicompressor-maven-pluginというものが便利だったので紹介。

利用方法は以下。

pom.xml

  <pluginRepositories>
    <pluginRepository>
      <name>oss.sonatype.org</name>
      <id>oss.sonatype.org</id>
      <url>http://oss.sonatype.org/content/groups/public</url>
    </pluginRepository>
  </pluginRepositories>

  <build>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
          <warSourceExcludes>WEB-INF/classes/**/*.*,WEB-INF/lib/*.jar</warSourceExcludes>
          <!-- 圧縮したものを加える。 -->
          <webResources>
            <resource>
              <directory>${project.build.directory}/minimized</directory>
              <targetPath>/</targetPath>
              <filtering>false</filtering>
            </resource>
          </webResources>
        </configuration>
      </plugin>

      <plugin>
        <groupId>net.alchim31.maven</groupId>
        <artifactId>yuicompressor-maven-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>compress</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <webappDirectory>${project.build.directory}/minimized</webappDirectory>
          <linebreakpos>-1</linebreakpos> <!-- 1行にまとめる -->
          <encoding>UTF-8</encoding>
          <nosuffix>true</nosuffix> <!-- 圧縮後のファイルに接尾語を付けない。 -->
          <force>true</force>
          <jswarn>false</jswarn>
          <!-- すでに圧縮済みのファイルは除外する -->
          <excludes>
            <exclude>**/*.min.js</exclude>
            <exclude>**/*.min.css</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>

その他の機能として、圧縮ファイルを1ファイルにまとめることも可能なようです。
こちらを参考にしてください。