В этом руководстве мы покажем вам, как использовать расширения PrimeFaces - плагин Maven для сжатия и объединения файлов JavaScript и CSS, например, для оптимизации веб-ресурсов, чтобы ускорить загрузку веб-сайта.
Инструмент проверен:
, PrimeFaces 3.3
, PrimeFaces-Extensions 0.5
, Maven 3.0.3
1. Структура проекта
Смотрите следующую структуру проекта. Он состоит из 3 файлов CSS и 2 файлов JavaScript. Позже мы сжимаем и объединяем эти файлы.
2. Копировать ресурсы
Сначала используется
maven-resources-plugin
для копирования всех ресурсов (js и css) в папку"
target
", но` bootstrap-dropdown.js` будет исключен.
<properties>
<project.theme.name>default</project.theme.name>
<project.resources.home.folder>
${project.basedir}/src/main/webapp/resources/${project.theme.name}/ </project.resources.home.folder>
<project.resources.build.folder>
${project.build.directory}/temp-resources/${project.theme.name}/ </project.resources.build.folder>
</properties>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>generate-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.resources.build.folder}/</outputDirectory>
<resources>
<resource>
<directory>${project.resources.home.folder}</directory>
<filtering>true</filtering>
<includes>
<include>** ** /** .css</include>
<include>** ** /** .js</include>
</includes>
<excludes>
<exclude>** ** /bootstrap** .js</exclude>
</excludes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
3. Сжать и объединить
Определите
resources-optimizer-maven-plugin
, чтобы сжать и объединить эти ресурсы в один файл. И скопируйте обратно в папку «источник».
<plugin>
<groupId>org.primefaces.extensions</groupId>
<artifactId>resources-optimizer-maven-plugin</artifactId>
<version>0.5</version>
<executions>
<execution>
<id>optimize</id>
<phase>prepare-package</phase>
<goals>
<goal>optimize</goal>
</goals>
</execution>
</executions>
<configuration>
<warningLevel>QUIET</warningLevel>
<suffix>-min</suffix>
<failOnWarning>false</failOnWarning>
<resourcesSets>
<resourcesSet>
<inputDir>${project.resources.build.folder}/css/</inputDir>
<includes>
<include>** ** /** .css</include>
</includes>
<aggregations>
<aggregation>
<removeIncluded>false</removeIncluded>
<outputFile>
${project.resources.home.folder}/css/${project.artifactId}.aggr.css
</outputFile>
</aggregation>
</aggregations>
</resourcesSet>
<resourcesSet>
<inputDir>${project.resources.build.folder}/js/</inputDir>
<includes>
<include>** ** /** .js</include>
</includes>
<aggregations>
<aggregation>
<removeIncluded>false</removeIncluded>
<outputFile>
${project.resources.home.folder}/js/${project.artifactId}.aggr.js
</outputFile>
</aggregation>
</aggregations>
</resourcesSet>
</resourcesSets>
</configuration>
</plugin>
В этой сборке 3 CSS-файла будут сжиматься или минимизироваться и объединяться в
projectname.aggr.css
, а файлы JavsScript в` projectname.aggr.js`
Изображение://wp-content/uploads/2012/08/3-copy-back.png[после комбайна, копирование и обратно, названия = "3-копия-обратно", ширина = 509, высота = 616]
4. Уборка
Перед сборкой не забудьте очистить ресурсы, например папку « target » и предыдущие файлы « .aggr », чтобы избежать дублирования содержимого.
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>auto-clean</id>
<phase>generate-resources</phase>
<goals>
<goal>clean</goal>
</goals>
<configuration>
<filesets>
<fileset>
<directory>${project.resources.home.folder}</directory>
<includes>
<include>** ** /** .aggr.css</include>
<include>** ** /** .aggr.js</include>
</includes>
</fileset>
</filesets>
</configuration>
</execution>
</executions>
</plugin>
5. Построить
Готово, использует команду
mvn prepare-package
для запуска процесса сжатия и объединения.
Скачать исходный код
Загрузить полный pom.xml - ссылка://wp-content/uploads/2012/08/pom.xml__.zip[pom.xml.zip](1 КБ)
Рекомендации
началось с закрытия компилятора], http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html [Maven
строить жизненные циклы]
ссылка://тег/css/[css]ссылка://тег/javascript/[javascript]ссылка://тег/primefaces/[primefaces]