2015-04-16 4 views
0

Мы используем последнюю версию (5) SonarQube для анализа нашего проекта. У меня есть некоторые вопросы о том, как он вычисляет Index Tangle Index (ранее Tangle Index), который я не смог найти в другом месте.Проблемы с индексом каталога SonarQube Tangle

  1. Почему SonarQube необходимо получить доступ к файлам классов для расчета индекса клубка? Какая информация нужна для этого анализа, который не включен в java-файлы?

  2. При указании местоположения класса-типа выше, почему мы должны предоставить такой глубокий путь? Я хочу указать «project.sonar.java.binaries =/path/bin /" not "... =/path/bin/com/company/project/a/b /". Я также был бы в порядке с «... =/path/bin/**/*. Class» или некоторым другим шаблоном. С этой целью мне нужно указать отдельное расположение файлов классов для каждого пакета в моем проекте? Проблема, с которой мы сталкиваемся, заключается в том, что мы пытаемся создать конфигурационный файл SonarQube с помощью автоматизированного процесса, и сверление, чтобы найти все необходимые пути, является проблемой - информация, необходимая для этого, недоступна при запуске процесса.

  3. Почему, когда я нажимаю на ссылку «Index Tangle Index», я могу получить страницу с сообщением «Нет данных DSM для компонента»? Я где-то читал, что для сложных проектов SonarQube не может предоставить информацию о том, какие каталоги запутаны. Почему нет? Или проблема в том, что мы указываем только один путь к файлу класса для каждого проекта, а не список всех отдельных подкаталогов?

Индекс запутывать звучит интересно, но если я не могу просверлить вниз, к которому пакеты показывают спутанные волосы, то это не будет так много помощи для улучшения нашего кода.

+0

Можете ли вы уточнить версию сонара-джава-плагина, которую вы используете? – benzonico

ответ

1

Так что есть на самом деле три вопроса в этом вопросе:

  1. Это, главным образом, в силу исторических причин. Семантический анализ в java-анализаторе довольно недавний и предшествует тому, что было действительно сложно быть на 100% уверенным в типе, упоминаемом в классе из источников (скажем, не было никакого инструмента для использования данных). Таким образом, решение заключалось в том, чтобы полагаться на анализ байт-кода.

  2. sonar.java.binaries необходимо указать каталоги, содержащие ваши .class файлы, но ожидается, что она будет в корневой пакет, потому что смотреть на класс будет сделано при условии, пакет является каталогом одного из каталогов, указанных в собственности. (так что если sonar.java.binaries определяется как path/bin, для класса com.mycompany.A мы будем искать файл path/bin/com/mycompany/A.class).

  3. Для этого потребуется дополнительная информация, чтобы помочь в деталях. (например, источник вашего заявления).

Смежные вопросы