Как настроить Maven для запуска анализа проекта SonarQube с двумя различными профилями качества?
мы запускаем анализ SonarQube для наших проектов Java через Maven. Maven как-то делает это автоматически; все, что мы сделали, это добавили sonar-maven-plugin
нашим пом.в XML:
<pluginManagement>
<plugins>
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</pluginManagement>
это прекрасно работает.
но теперь нам нужно запустить анализ SonarQube два раза, С различными профилями качества. Поскольку вы не можете легко изменить ключ проекта из Maven, мы используем SonarQube branch
свойство, чтобы отличить проекты SonarQube, как это (снова от пом.в XML):
<properties>
<sonar.profile>MyQualityProfile1</sonar.profile>
<sonar.branch>Dev_${sonar.profile}</sonar.branch>
...
</properties>
таким образом, мы получаем две записи проекта в пользовательском интерфейсе SonarQube, обе из которых содержат один и тот же код, но имеют разные проблемы в зависимости от их профиля качества (один используемый профиль качества 1, а другой используемый профиль качества 2).
проблема: чтобы достичь этого, я должен вручную изменить пом.в XML свойства и запустите всю сборку дважды.
вопрос: как я могу настройте maven, чтобы просто запустить sonar:sonar
цель дважды с разными свойствами?
Это сэкономит нам много времени на наших сборках. Я уже нашел этот же вопрос, но пока нет ответов. Спасибо!
4 ответов
расширение предыдущего ответа, данного Eldad AK относительно профилей:
создайте два профиля maven следующим образом:
<properties>
<sonar.branch>Dev_${sonar.profile}</sonar.branch>
</properties>
<profiles>
<profile>
<id>QualityProfileOne</id>
<properties>
<sonar.profile>MyQualityProfile1</sonar.profile>
</properties>
</profile>
<profile>
<id>QualityProfileTwo</id>
<properties>
<sonar.profile>MyQualityProfile2</sonar.profile>
</properties>
</profile>
</profile>
выполните следующее:
$ mvn clean install -DskipTests
$ mvn sonar:sonar -PQualityProfileOne
$ mvn sonar:sonar -PQualityProfileTwo
(возможно, Вам потребуется выполнить очистку между работающим сонаром, не уверен)
попробуйте настроить два выполнения вашего плагина. Что-то вроде этого:--2-->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<executions>
<execution>
<id>s1</id>
<phase>verify</phase>
<goals>
<goal>sonar</goal>
</goals>
<configuration>
<sonar.branch>MyQualityProfile1</sonar.branch>
</configuration>
</execution>
<execution>
<id>s2</id>
<phase>install</phase>
<goals>
<goal>sonar</goal>
</goals>
<configuration>
<sonar.branch>MyQualityProfile2</sonar.branch>
</configuration>
</execution>
</executions>
</plugin>
это запустит два выполнения сонара в фазах проверки и установки, каждый с другим сонаром.отраслевое значение. После первого анализа в Sonar можно настроить необходимые профили качества.
комбинация maven и Ant может работать: используйте Maven для первого анализа сонара, как вы уже делаете, и используйте В Maven-Antrun Плагин для выполнения другой конфигурации SonarQube, определенной с помощью SonarQube Муравей Задача.
Я бы выбрал профили maven.
Каждый профиль будет иметь свои собственные свойства.
надеюсь, это поможет.