22

我在文件夹层次结构中有 100 个 javascript 文件,我想要两组输出。一种是用于调试目的的串联版本,另一种是具有 concat + minfy 版本。我目前正在使用以下插件,但在此我需要提供我需要缩小的每个文件。我正在寻找一个只需要父文件夹并满足上述条件的插件。

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

3 回答 3

33

YUI 压缩 Maven 插件为我工作。我将展示我为使其发挥作用所做的一切。

  • 为了连接我使用聚合的所有 js 文件。

使用的元素的详细信息。

  • preProcessAggregates - 在缩小之前处理聚合。
  • 聚合- 将文件夹层次结构中的多个资源聚合到一个文件中。
  • 聚合- 父聚合内可以有多个聚合元素。
  • insertNewLine - 在每个文件 eof 之后插入换行符,同时连接/聚合文件。
  • inputDir - 将在其中搜索文件以进行连接/聚合的父目录。
  • sourceDirectory - 在其下搜索文件以进行缩小的目录。
  • outputDirectory - 将放置缩小输出的目录。
  • nosuffix - 如果设置为 true,则插件不会将“-min”添加到缩小文件中。

有两种类型的<exclude>财产:-

  • 首先是聚合的一部分,它基本上将文件排除在聚合之外。
  • 其次是插件的一部分,用于从缩小中排除文件。

插件代码:-

<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>
于 2013-05-26T09:55:25.857 回答
15

你应该看看yui 压缩 maven 插件,这听起来像你需要的东西。

于 2013-05-25T10:20:20.233 回答
4

Mady,Minify Maven 插件也支持包含/排除模式。
请查看插件文档中的词典排序示例页面。

于 2013-05-27T01:03:29.180 回答