Pull to refresh
3
0
Alexander Urmuzov @urmuzov

User

Send message

Компиляция JavaScript проекта с помощью Maven и Closure Compiler

Reading time6 min
Views8.8K
Добрый день, коллеги!

Хотел поделиться своими наработками в области автоматизации процесса сборки javascript проекта использующего Google Closure Compiler и Google Closure Library при помощи Apache Maven. Страничка проекта https://github.com/urmuzov/closure-maven, там же лежит документация по каждому из компонентов проекта.

О проекте


Главный компонент проекта — это архетип. Архетип объединяет в себя все остальные компоненты проекта, которые при желании могут использоваться отдельно от него.

Архетип предоставляет средства для решения самых часто встречающихся задач при разработке, а именно:
  • Запаковывает javascript код в maven артефакты для распространения (такие артефакты содержат помеченные пакеты специальной структуры, названные closure-packages);
  • Распаковывает closure-packages из подключенных в <dependencies> артефактов для компиляции;
  • Помогает в объединении и оптимизации js и css файлов при помощи Web Resource Optimizer for Java (wro4j);
  • Предоставляет 5 профилей компиляции для разных целей:
    • compiled — для «боевой» сборки проекта. Уровень компиляции ADVANCED_OPTIMIZATIONS;
    • merged — для склеивания всех исходных js файлов в один, фактически без компиляции. Уровень компиляции WHITESPACE_ONLY, форматирование PRETTY_PRINT;
    • sources — для дебага javascript файлов в бразуере. Компиляция происходит как и в профиле compiled, но в html будут подключены файлы с исходными кодами;
    • sources-no-compile — для дебага html/css файлов. Компиляции не происходит, просто в html подключаются файлы с исходными кодами;
    • jar — для сборки jar-архива для распространения;

  • Генерирует jsdoc и jslint отчеты при выполнении mvn site.

Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments8

Information

Rating
Does not participate
Location
Пермь, Пермский край, Россия
Date of birth
Registered
Activity