Maven YUI Compressor: сжатие после агрегации - PullRequest
2 голосов
/ 30 марта 2012

Можно ли настроить Maven YUI Compressor для сжатия файлов после агрегации, поскольку я хочу исключить каталог «sources», который содержит файлы для агрегации, а затем сжать агрегированные файлы.

Например, у меня есть некоторые .js-файлы внутри / js / sources / mylib / , и все эти файлы объединены в один файл / js / mylib.js , а yui- ступень агрегации компрессора. В pom.xml я настраиваю yui-compress, чтобы исключить целые / js / sources / и сжимать файлы только в библиотеке / js , но yui-compress выполняет цель «compress» перед агрегацией, поэтому я распаковал объединенные файлы. И мне нужно это как-то исправить

1 Ответ

1 голос
/ 10 апреля 2012

Можем ли мы перевернуть его и сказать: агрегировать после сжатия? Если это так, у меня возникла та же проблема, и со следующей она сработала для меня.

Похоже, хитрость заключалась в том, чтобы поместить выходной файл в целевой каталог, а не в источник. Таким образом, вы можете включить в агрегирование файлы, которые были уменьшены.

Файлы, которые уже были уменьшены, я затем подхожу через basedir var.

  <executions>
    <execution>
      <goals>
        <goal>compress</goal>
      </goals>
    </execution>
  </executions>        
  <configuration>
    <excludes>
        <exclude>**/*-min.js</exclude>
        <exclude>**/*.min.js</exclude>
        <exclude>**/*.css</exclude>
    </excludes>
    <removeIncluded>false</removeIncluded>
    <jswarn>false</jswarn>
    <aggregations>
        <aggregation>
          <insertNewLine>true</insertNewLine>
          <removeIncluded>false</removeIncluded>
          <includes>
              <!-- these exist only in target dir. the original was json2.js & bootstrap.tabs.js -->
              <include>**/bootstrap-tabs-min.js</include>
              <include>**/json2-min.js</include>
              <!-- use originals for the ones already minified -->
              <include>${basedir}/src/main/webapp/js/backbone-min.js</include>
          </includes>
          <output>${project.build.directory}/${project.build.finalName}/js/test.js</output>
        </aggregation>
    </aggregations>
  </configuration>
...