Ответ 1
Взгляните на yuicompressor-maven-plugin. Он может агрегировать различные js (а также css) файлы, а также минимизировать и обфускации их.
Я создал сложную веб-страницу с одним веб-сайтом, основанной на ajax, которая использует веб-службу RESTful, обслуживающую JSON. Javascript разделен на множество разных файлов, каждый из которых представляет какую-то функцию или компонент.
Пока служба была в альфа-тестировании, я просто обслуживаю все эти файлы отдельно без каких-либо изменений. Но теперь, когда я хотел бы запустить бета-версию, мне действительно нужно объединить файлы, их минимизировать и их версию. Я хочу добавить это в мой процесс сборки, используя Maven.
Я использую следующие "типы" файлов javascript, из которых 3 и 4 меня беспокоят:
Я хотел бы сделать следующее во время моего процесса сборки:
app-2.0.6.min.js
, где 2.0.6 - версия проекта maven.feature-abc-56ab32de29.min.js
, где 56ab32de29 - номер версии этого конкретного файла.<script>
, чтобы указать на файлы javascript с правильными номерами версий.Есть ли плагин maven, который поможет с конкатенацией?
Есть ли плагин maven, который поможет с минимизацией? В идеале, я бы хотел использовать Google Closure Compiler, но с другими, если проще, будет работать.
Есть ли плагин maven, который поможет в управлении версиями?
Есть ли способ, чтобы файлы javascript типа 4 имели независимые номера версий? В идеале, если файл не изменяется между версиями 2.0.5 и 2.0.6, пользователям не нужно загружать новую версию, и их кэшированная версия будет работать нормально. Я использую GIT для управления исходным кодом, так будет ли способ использовать файл GIT hashcode для управления версиями?
Есть ли решение, которое сжимает javascript, который встроен в обычные файлы HTML, не убивая HTML?
Есть ли решение, которое будет сжимать и обновлять мои файлы CSS?
Взгляните на yuicompressor-maven-plugin. Он может агрегировать различные js (а также css) файлы, а также минимизировать и обфускации их.
Вот совершенно новый плагин Maven, предназначенный для этой задачи: http://mojo.codehaus.org/webminifier-maven-plugin/
Я успешно включил оптимизацию RequireJS (использует компилятор Google Closure + делает конкатенацию) в среде Maven (для одностраничного JS-приложения). См. Мой вопрос и последующий ответ для деталей: Компиляция RequireJS в проекте Maven с внешними зависимостями JS
Вероятно, вы можете расширить его до версии и архивировать миниатюрные артефакты JS.