Maven插件可以连接和缩小javascript

时间:2013-05-25 07:09:27

标签: maven minify

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

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

3 个答案:

答案 0 :(得分:33)

YUI compression maven plugin为我工作。 我将展示我所做的一切,以使其发挥作用。

  
      
  • 连接我使用聚合的所有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>

答案 1 :(得分:14)

你应该看看yui compression maven plugin这听起来像你需要的东西。

答案 2 :(得分:4)

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