Ответ 1
Вы должны взглянуть на yui compression maven plugin, который походит на то, что вам нужно.
У меня есть 100s файлов javascript внутри иерархии папок, и я хочу два набора выходных данных. один должен иметь конкатенированную версию для целей отладки, а другой - иметь версию concat + minfy. В настоящее время я использую подключаемый модуль ниже, но в этом я должен предоставить каждый файл, который мне нужно, чтобы минимизировать. Я ищу плагин, который нуждается только в родительской папке и удовлетворяет указанным выше условиям.
<groupId>com.samaxes.maven</groupId>
<artifactId>minify-maven-plugin</artifactId>
<version>1.7</version>
Вы должны взглянуть на yui compression maven plugin, который походит на то, что вам нужно.
YUI compression maven plugin работал у меня. Я покажу, что все, что я сделал, чтобы заставить его работать.
- Чтобы объединить все файлы js, я использовал агрегацию.
Подробная информация о используемых элементах.
- preProcessAggregates. Чтобы обработать агрегацию до минимизации.
- агрегации. Чтобы объединить несколько ресурсов в иерархии папок в один файл.
- агрегация. В родительских агрегатах может быть несколько элементов агрегации.
- insertNewLine. Вставьте новую строку после каждого файла eof, в то время как конкатенация/агрегация файлов.
- inputDir - родительский каталог, внутри которого будут искать файлы для конкатенации/агрегации.
- sourceDirectory - каталог, в соответствии с которым файлы будут искать для минимизации.
- outputDirectory - каталог, в котором будет размещен уменьшенный вывод.
- nosuffix. Если установлено значение true, плагин не добавит '-min' в миниатюрный файл.
Существует 2 типа свойства <exclude>
: -
- Сначала это часть агрегации, которая в основном исключает файлы из агрегации.
- Во-вторых, это часть плагина, чтобы исключить файлы из minification.
Код плагина:
<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>
Mady, Minify Maven Plugin также поддерживает шаблоны include/exclude.
Пожалуйста, взгляните на страницу примера Lexicographic ordering из документации плагина.