我在文件夹层次结构中有100个javascript文件,我想要两组输出。一个是连接版本用于调试目的,另一个是concat + minfy版本。我目前正在使用下面的插件,但在此我需要提供我需要缩小的每个文件。我正在寻找一个只需要父文件夹并满足上述条件的插件。
<groupId>com.samaxes.maven</groupId>
<artifactId>minify-maven-plugin</artifactId>
<version>1.7</version>
答案 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示例页面。