- PVSM.RU - https://www.pvsm.ru -

Jenkins + JsHint(JsLint) или смотрим метрики javaScript на Jenkins-е

Здравствуйте. Получил такое задание, в принципе все ясно из названия темы.
О том как я этого достиг, шаг за шагом, будет следующий пост.
Если что не так — критика приветствуется, это было так сказать исследовательское задание, и перед началом работы над ним у меня не было понятия о данном инструменте, зачем он и так д…
В процессе исследования многие вопросы прояснились.

Суть задания поподробней.
Нужно было чтоб в проекте на Jenkins-e отображался график и небольшая статистика по метрикам JavaScript-кода из проекта.
При этом обязательным условием в качестве анализа js-кода было использование только JsHint, тоисть JsLint не проходит.

Начался сбор информации, так как такое слово я услышал впервые. У Jenkins-а есть огромная библиотека плагинов и соответственно кто-то уже задавался данным вопросом. Так что сначала искался Jenkins-plugin.
Плагин был успешно найден, но прикрутить его к серверу мне не получилось.
Вот линк на плагин, там же и есть информация как его прикручивать.
http://www.boxuk.com/labs/jslint-jenkins-plugin/ [1]

Дальше поиск меня привел к nodeJs и его плагину(npm) jshint.
Дальше шаг за шагом, что нужно сделать, чтоб получить на Jenkins-е анализ кода с помощью JsHint.

  1. Инсталлируем nodejs [2]
  2. Устанавливаем jshint-npm:
    npm install -g jshint
    Документация:
    https://npmjs.org/package/jshint [3]

  3. Для игнорирования не нужных папок и файлов создаем в root-папке проекта (где лежит pom.xml) файл с названием
    .jshintignore
    к примеру мы хотим проигнорировать все файлы из следующей директории src/main/webapp/resources/js/lib/
    то в файле .jshintignore так и напишем
    src/main/webapp/resources/js/lib/

  4. Файл .jshintignore можно конфигурировать с помощью регулярных выражений «minimatch»
    https://github.com/isaacs/minimatch [4]

  5. Инсталлируем Violation-Plugin для Jenkins, он поддерживает(читает) различные метрики кода в том числе jslint/jshint
    https://wiki.jenkins-ci.org/display/JENKINS/Violations [5]

  6. После инсталляции плагина, пере запускаем Jenkins, заходим в конфигурацию проекта и там находим флажок «violations».
    Открываем и видим, что он уже может прочитать xml-файл с jslint метриками кода.

  7. Ну и наконец самая главная команда, ради которой все эти пляски с бубном затевались.
    Эту команду пишем в конфигурации проекта как «запустить shell-команду».
    jshint ./src/main/webapp/resources/js --jslint-reporter > ./target/jslint.xml
    запускаем ранее установленный jshint-npm как параметр передаем папку с js фалами для анализа, при этом говорим, что нам отчет нужно формировать в стиле jslint, так как наш violation-plugin может читать только jslint-report. и удачно все пишем в файл по указанному пути.

  8. В violation-plugin указываем путь к нашему
    ./target/jslint.xml

  9. Все, готово! Можно запускать и радоваться графиком и статистикой.

Надеюсь кому-то пригодится.
Всех новичков прошу ко мне, буду стараться регулярно что-то писать: j-web-dev.blogspot.com/ [6]
P.S. За блог сильно не пинайте, никто профессионалом не рождается. )

Автор: web_dev

Источник [7]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/java/21034

Ссылки в тексте:

[1] http://www.boxuk.com/labs/jslint-jenkins-plugin/: http://www.boxuk.com/labs/jslint-jenkins-plugin/

[2] nodejs: http://nodejs.org/

[3] https://npmjs.org/package/jshint: https://npmjs.org/package/jshint

[4] https://github.com/isaacs/minimatch: https://github.com/isaacs/minimatch

[5] https://wiki.jenkins-ci.org/display/JENKINS/Violations: https://wiki.jenkins-ci.org/display/JENKINS/Violations

[6] j-web-dev.blogspot.com/: http://j-web-dev.blogspot.com/

[7] Источник: http://habrahabr.ru/post/160181/