Разрабатывая веб-приложения с обилием JS, со временем сталкиваешься с необходимостью автоматизировать сборку и тестирование, а также построение различных отчетов, документации и т.п. Мы столкнулись с этой проблемой практически сразу после старта проекта. В силу того, что серверная часть реализована на Java, выбор с очевидностью пал на Maven. Оставалось найти плагин, который умеет работать с javascript.
Поиски были недолгими и привели на mojo.codehaus.org/javascript-maven-tools/. «То, что нужно»,- подумал я и начал прикручивать его к проекту.
Для начала настроим maven для использования плагинов из песочницы.
Создадим проект со структурой, описанной на сайте плагина. Файл pom.xml можно взять из примера с сайта.
Теперь на фазе компиляции плагин будет объединять файлы, указанные в solution.jsb, в один (или несколько) пакетов.
Как обычно добавляем (или изменяем) секцию в pom.xml
Теперь на этапе генерации сайта (цель site) у нас будет генерироваться jsdoc, а также отчет по корректности кода (при помощь JSLint). Результат работы JSLint особенно полезен, так как позволяет устранить недочеты и ошибки в коде на раннем этапе (например, лишняя запятая в массиве очень печалит IE).
Для того, чтобы собрать проект достаточно выполнить команду
Для генерации отчетов необходимо выполнить команду
К сожалению, данный плагин действительно находится в состоянии альфа тестирования. Но это не самое плохое. Хуже то, что плагин больше не развивается. Последняя активность датирована началом 9го года.
В силу того, что данный плагин активно используется в нашем проекте, мы подготовили несколько патчей и планируем предложить их владельцу javascript-maven-tools.
PS. Слава Богу, лицензия позволяет форкать проект, поэтому в случае негативного ответа, мы обязательно воспользуемся преимуществами Apache License.
Поиски были недолгими и привели на mojo.codehaus.org/javascript-maven-tools/. «То, что нужно»,- подумал я и начал прикручивать его к проекту.
Подключение плагина
Для начала настроим maven для использования плагинов из песочницы.
Подготовка проекта
Создадим проект со структурой, описанной на сайте плагина. Файл pom.xml можно взять из примера с сайта.
Настройка сборки
Добавляем в pom.xml следующую секцию:<build>
<outputDirectory>target/scripts</outputDirectory>
<testOutputDirectory>target/test-scripts</testOutputDirectory>
<plugins>
<plugin>
<groupId>org.codehaus.mojo.javascript</groupId>
<artifactId>javascript-maven-plugin</artifactId>
<version>1.0-alpha-1-SNAPSHOT</version>
<extensions>true</extensions>
<configuration>
<descriptor>${basedir}/src/main/assembler/solution.jsb</descriptor>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
* This source code was highlighted with Source Code Highlighter.
Теперь на фазе компиляции плагин будет объединять файлы, указанные в solution.jsb, в один (или несколько) пакетов.
Настройка отчетов
Как обычно добавляем (или изменяем) секцию в pom.xml
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo.javascript</groupId>
<artifactId>javascript-report-maven-plugin</artifactId>
<version>1.0-alpha-1-SNAPSHOT</version>
<reportSets>
<reportSet>
<reports>
<report>jsdoc</report>
<report>jslint</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
* This source code was highlighted with Source Code Highlighter.
Теперь на этапе генерации сайта (цель site) у нас будет генерироваться jsdoc, а также отчет по корректности кода (при помощь JSLint). Результат работы JSLint особенно полезен, так как позволяет устранить недочеты и ошибки в коде на раннем этапе (например, лишняя запятая в массиве очень печалит IE).
Сборка проекта
Для того, чтобы собрать проект достаточно выполнить команду
mvn compile
в корне проекта. После этого у нас в папке target/scripts
будет собранное приложение, готовое к загрузке на сайт.Для генерации отчетов необходимо выполнить команду
mvn site
. Сгенерированные отчеты можно будет найти в папке target/site
Ложка дегтя
К сожалению, данный плагин действительно находится в состоянии альфа тестирования. Но это не самое плохое. Хуже то, что плагин больше не развивается. Последняя активность датирована началом 9го года.
Бочка меда
В силу того, что данный плагин активно используется в нашем проекте, мы подготовили несколько патчей и планируем предложить их владельцу javascript-maven-tools.
PS. Слава Богу, лицензия позволяет форкать проект, поэтому в случае негативного ответа, мы обязательно воспользуемся преимуществами Apache License.