Плагин Maven для управления версиями и минимизации javascript


Одностраничное Приложение Javascript

Я построил сложный ajax-управляемый одностраничный веб-приложение, которое использует RESTful backend web service, обслуживающий JSON. Javascript разделен на множество различных файлов, каждый из которых представляет собой какую-то функцию или компонент.

пока служба была в Альфа тестирование, я просто обслуживаю все эти файлы отдельно без минификации. Но теперь, когда я хотел бы запустить бета версия, Мне действительно нужно объединить файлы, минимизировать их и версировать. Я хочу добавить это в свой процесс сборки, используя Maven.

Типы Файлов Javascript

я использую следующие" типы " файлов javascript, из которых #3 и #4 являются моими проблемами:

  1. внешние файлы, такие как jquery и jQuery-ui, обслуживаемые из Google CDN. Редко меняйте эти версии, можно обрабатывать вручную.
  2. Плагины Jquery, которые я размещаю сам, такие как fullcalendar или интерфейс-макета. Опять же, я редко обновляю их до новых версий и могу обрабатывать их вручную.
  3. код javascript для всего приложения. Пользовательский javascript, который распространяется на многие файлы и может иногда меняться. Все эти файлы должны быть загружены для работы приложения.
  4. функциональный код 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 51

3 ответа:

посмотри yuicompressor-maven-plugin. Он может объединять различные файлы js (а также css), а также уменьшать и запутывать их.

вот совершенно новый плагин Maven, который нацелен на эту задачу:http://mojo.codehaus.org/webminifier-maven-plugin/

Я успешно включил оптимизацию RequireJS (использует компилятор закрытия Google + делает конкатенацию) в среде Maven (для одностраничного JS-приложения). Смотрите мой вопрос и последующий ответ для деталей:компиляция RequireJS в проекте Maven с внешними зависимостями JS

вы, вероятно, могли бы расширить это до версии и архивировать уменьшенные артефакты JS.