Подтвердить что ты не робот

Плагин Maven для согласования и минимизации javascript

У меня есть 100s файлов javascript внутри иерархии папок, и я хочу два набора выходных данных. один должен иметь конкатенированную версию для целей отладки, а другой - иметь версию concat + minfy. В настоящее время я использую подключаемый модуль ниже, но в этом я должен предоставить каждый файл, который мне нужно, чтобы минимизировать. Я ищу плагин, который нуждается только в родительской папке и удовлетворяет указанным выше условиям.

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

Ответ 1

Вы должны взглянуть на yui compression maven plugin, который походит на то, что вам нужно.

Ответ 2

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>

Ответ 3

Mady, Minify Maven Plugin также поддерживает шаблоны include/exclude.
Пожалуйста, взгляните на страницу примера Lexicographic ordering из документации плагина.