Здравствуйте. Получил такое задание, в принципе все ясно из названия темы.
О том как я этого достиг, шаг за шагом, будет следующий пост.
Если что не так — критика приветствуется, это было так сказать исследовательское задание, и перед началом работы над ним у меня не было понятия о данном инструменте, зачем он и так д…
В процессе исследования многие вопросы прояснились.
Суть задания поподробней.
Нужно было чтоб в проекте на Jenkins-e отображался график и небольшая статистика по метрикам JavaScript-кода из проекта.
При этом обязательным условием в качестве анализа js-кода было использование только JsHint, тоисть JsLint не проходит.
Начался сбор информации, так как такое слово я услышал впервые. У Jenkins-а есть огромная библиотека плагинов и соответственно кто-то уже задавался данным вопросом. Так что сначала искался Jenkins-plugin.
Плагин был успешно найден, но прикрутить его к серверу мне не получилось.
Вот линк на плагин, там же и есть информация как его прикручивать.
http://www.boxuk.com/labs/jslint-jenkins-plugin/
Дальше поиск меня привел к nodeJs и его плагину(npm) jshint.
Дальше шаг за шагом, что нужно сделать, чтоб получить на Jenkins-е анализ кода с помощью JsHint.
- Инсталлируем nodejs
- Устанавливаем jshint-npm:
npm install -g jshint
Документация:
https://npmjs.org/package/jshint - Для игнорирования не нужных папок и файлов создаем в root-папке проекта (где лежит pom.xml) файл с названием
.jshintignore
к примеру мы хотим проигнорировать все файлы из следующей директории src/main/webapp/resources/js/lib/
то в файле .jshintignore так и напишем
src/main/webapp/resources/js/lib/
- Файл .jshintignore можно конфигурировать с помощью регулярных выражений «minimatch»
https://github.com/isaacs/minimatch - Инсталлируем Violation-Plugin для Jenkins, он поддерживает(читает) различные метрики кода в том числе jslint/jshint
https://wiki.jenkins-ci.org/display/JENKINS/Violations - После инсталляции плагина, пере запускаем Jenkins, заходим в конфигурацию проекта и там находим флажок «violations».
Открываем и видим, что он уже может прочитать xml-файл с jslint метриками кода. - Ну и наконец самая главная команда, ради которой все эти пляски с бубном затевались.
Эту команду пишем в конфигурации проекта как «запустить shell-команду».
jshint ./src/main/webapp/resources/js --jslint-reporter > ./target/jslint.xml
запускаем ранее установленный jshint-npm как параметр передаем папку с js фалами для анализа, при этом говорим, что нам отчет нужно формировать в стиле jslint, так как наш violation-plugin может читать только jslint-report. и удачно все пишем в файл по указанному пути. - В violation-plugin указываем путь к нашему
./target/jslint.xml
- Все, готово! Можно запускать и радоваться графиком и статистикой.
Надеюсь кому-то пригодится.
Всех новичков прошу ко мне, буду стараться регулярно что-то писать: j-web-dev.blogspot.com/
P.S. За блог сильно не пинайте, никто профессионалом не рождается. )
Автор: web_dev