Плагин Maven для управления версиями и минимизации javascript
Одностраничное Приложение Javascript
Я построил сложный ajax-управляемый одностраничный веб-приложение, которое использует RESTful backend web service, обслуживающий JSON. Javascript разделен на множество различных файлов, каждый из которых представляет собой какую-то функцию или компонент.
пока служба была в Альфа тестирование, я просто обслуживаю все эти файлы отдельно без минификации. Но теперь, когда я хотел бы запустить бета версия, Мне действительно нужно объединить файлы, минимизировать их и версировать. Я хочу добавить это в свой процесс сборки, используя Maven.
Типы Файлов Javascript
я использую следующие" типы " файлов javascript, из которых #3 и #4 являются моими проблемами:
- внешние файлы, такие как jquery и jQuery-ui, обслуживаемые из Google CDN. Редко меняйте эти версии, можно обрабатывать вручную.
- Плагины Jquery, которые я размещаю сам, такие как fullcalendar или интерфейс-макета. Опять же, я редко обновляю их до новых версий и могу обрабатывать их вручную.
- код javascript для всего приложения. Пользовательский javascript, который распространяется на многие файлы и может иногда меняться. Все эти файлы должны быть загружены для работы приложения.
- функциональный код javascript. Пользовательский javascript, который загружается по требованию при запросе определенной функции. Этот код может меняться довольно часто и не загружен запуск.
Построить Цели
Я хотел бы сделать следующее во время моего процесса сборки:
- объедините все файлы javascript типа 3 вместе, уменьшите их и сохраните как один файл с номером версии. Например:
app-2.0.6.min.js
, где 2.0.6-версия проекта maven. - все файлы типа 4 должны быть индивидуально уменьшены и сохранены как отдельные файлы с номерами версий в имени. Например:
feature-abc-56ab32de29.min.js
, где 56ab32de29 - это номер версии этого конкретного файла. - обновить HTML файлы с помощью
<script>
теги, указывающие на файлы javascript с правильными номерами версий. - контрактной работе с разными компаниями обновить файлы, что типа нагрузка 4 особенность JavaScript-файлы, чтобы указать на правильные версии.
вопросы
есть ли плагин maven, который поможет с конкатенацией?
есть ли плагин maven, который будет помочь с минификацией? В идеале, я хотел бы использовать Google Closure Compiler, но будет работать с другими, если проще.
есть ли плагин maven, который поможет с версиями?
есть ли способ, чтобы файлы javascript типа 4 имели независимые номера версий? В идеале, если файл не изменяется между версиями 2.0.5 и 2.0.6, пользователям не нужно загружать новую версию, и их кэшированная версия будет работать нормально. Я использую GIT для управления версиями, так что будет ли способ использовать хэш-код git файла для управления версиями?
есть ли решение, которое будет сжимать javascript, который встроен в обычные HTML-файлы, не убивая HTML?
есть ли решение, которое будет сжимать и версии моих файлов CSS, а также?
3 ответа:
посмотри yuicompressor-maven-plugin. Он может объединять различные файлы js (а также css), а также уменьшать и запутывать их.
вот совершенно новый плагин Maven, который нацелен на эту задачу:http://mojo.codehaus.org/webminifier-maven-plugin/
Я успешно включил оптимизацию RequireJS (использует компилятор закрытия Google + делает конкатенацию) в среде Maven (для одностраничного JS-приложения). Смотрите мой вопрос и последующий ответ для деталей:компиляция RequireJS в проекте Maven с внешними зависимостями JS
вы, вероятно, могли бы расширить это до версии и архивировать уменьшенные артефакты JS.