SonarQube — настройка sonar-project.properties проекта Java EE 6 для избавления от WARN — класс не найден

Я пытаюсь проанализировать огромный проект Java EE 6. Из-за данного набора правил с некоторыми более старыми правилами мы привязаны к Sonarqube 4.5.6 с некоторыми специальными плагинами на данный момент (анализ выполняется с Sonar Scanner 2.5.1).

Анализ проекта завершается без сбоев, но в логе много предупреждений о ненайденных классах вроде

WARN  - Class not found: javax.servlet.http.HttpServletRequest

Также сообщаются аналогичные предупреждения от других плагинов. Поэтому я осмотрелся и нашел обходной путь, добавив путь к .jars Java EE 6 в конфигурацию sonar.java.libraries в файле sonar-project.properties. Теперь я избавился от варингов (за исключением нескольких классов в org.apache.commons.io и org.apache.commons.fileupload - везде, где может быть соответствующий .jar).

Это будет работать на моем локальном компьютере, но настоящий сервер сонара находится где-то еще, где нет Java EE 6. Итак, я подумал о том, чтобы скопировать соответствующие .jars в какой-нибудь каталог и сослаться на каталог в файле sonar.java.libraries.

Моя проблема: как узнать, какие .jars действительно используются при анализе сонара? Я не хочу копировать тысячи файлов, когда на самом деле нужно всего десять.

Есть ли какой-то скрытый файл журнала, написанный sonarqube или чем-то подобным? Любая другая идея?


person outofmind    schedule 20.05.2016    source источник


Ответы (1)


Предупреждение исходит от java-анализатора о том, что некоторые файлы .class не найдены. То, что вы описываете как обходной путь, является правильным решением для получения более точного результата вашего анализа.

Ваш вопрос: где я могу найти банку, соответствующую классам, которые были предупреждены как отсутствующие?

Java-анализатор SonarQube не может вам этого сказать (потому что, если бы он мог, он попытался бы найти классы). Я бы порекомендовал вам поискать в http://www.findjar.com/ некоторые имена классов и посмотреть, какие файлы зависимостей требуются и добавляйте их понемногу.

person benzonico    schedule 20.05.2016
comment
Спасибо. В моей среде на основе Eclipse оказалось наиболее эффективным использовать Open Type (shift-ctrl-T) и искать там отсутствующий класс — он покажет соответствующий .jar, который я потом могу включить в свой файл свойств — таким образом я нашел свою горстку .jars, которые мне нужны - person outofmind; 23.05.2016