2013-12-13 3 views
1

Я просмотрел несколько вопросов, связанных с мультимодульными проектами maven и сонаром, но в основном это было связано с агрегированием показателей покрытия кода.Сонар отсутствует зависимости между модулями Maven

У меня есть мультимодульный проект maven, который анализируется сонаром. Если я проведу анализ прямо с терминала, используя mvn sonar:sonar, в результате анализа будут отображаться зависимости между модулями maven на странице Design.

Однако, если я запустил анализ, обратившись к сонарщику через Дженкинса, итоговый анализ пропустит зависимости между модулями maven.

Вот отрывок из П верхнего уровня, где я установил сонар параметры:

<profile> 
    <id>sonar</id> 
    <activation> 
     <activeByDefault>true</activeByDefault> 
    </activation> 
    <properties> 
     <sonar.jdbc.url> 
      jdbc:mysql://myhost:3306/sonar?useUnicode=true&amp;characterEncoding=utf8 
     </sonar.jdbc.url> 
     <sonar.jdbc.username>sonar</sonar.jdbc.username> 
     <sonar.jdbc.password>sonar</sonar.jdbc.password> 
     <sonar.host.url>http://myhost:9999</sonar.host.url> 
     <sonar.java.source>1.7</sonar.java.source> 
     <sonar.login>jenkins</sonar.login> 
     <sonar.password>jenkins</sonar.password> 
    </properties> 
</profile>     

На Дженкинс я настроил работу, чтобы сделать на этапе сборки с последующим действием после сборки для запуска эхолота в clean install -DskipTests=true ,

Я использую версию Maven 3.0.5, версию SonarQube 3.7, Sonar Runner 2.3 и Java 1.7.0_45.

Любая идея о том, что я могу потерять в своей конфигурации?

ответ

1

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

+0

Кажется, что если я запустил «mvn sonar: sonar» из командной строки, я получу межмодульные зависимости на странице дизайна. Но если я сделаю то же самое из jenkins как шаг после сборки, зависимости не будут показаны. Любая идея почему? –

+0

С некоторыми экспериментами я обнаружил, что межмодульные зависимости появляются на странице дизайна, если я НЕ устанавливаю свойство 'sonar.branch'. –

0

Хорошо, если вы используете Jenkins, вам необходимо установить Sonar Plugin и установить параметры. Затем вам необходимо создать задание и запустить цель maven:

clean install 

После этого отметьте сонар checkbok. Запустите свою работу, и вы увидите свой код.

PS: Если вы используете модуль, у вас должен быть pom-root со всеми вашими модулями.

+0

Спасибо, что нашли время, но проблема, которую я описал, не связана с охватом кода. У меня установлен Sonar Plugin, и я могу построить и проанализировать проект от Jenkins. Моя проблема связана с межмодульными зависимостями. Зависимости, которые вы ожидаете увидеть между модулями на странице дизайна SonarQube. –

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