JavaプロジェクトのMavenを介してSonarQube分析を実行します。Mavenはこれを自動的に行います。私たちが行ったのは、sonar-maven-plugin
をpom.xml:
<pluginManagement>
<plugins>
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</pluginManagement>
これは正常に動作します。
しかし、ここで、異なる品質プロファイルでSonarQube分析twiceを実行する必要があります。 Mavenからプロジェクトキーを簡単に変更することはできないため、SonarQubeのbranch
プロパティを使用して、次のようにSonarQubeプロジェクトを区別します(ここでもpom.xmlから) :
<properties>
<sonar.profile>MyQualityProfile1</sonar.profile>
<sonar.branch>Dev_${sonar.profile}</sonar.branch>
...
</properties>
このようにして、SonarQube UIに2つのプロジェクトエントリが作成されます。どちらにもまったく同じコードが含まれていますが、品質プロファイル(1つは品質プロファイル1を使用し、もう1つは品質プロファイル2を使用)によって問題が異なります。
問題:これを実現するには、pom.xmlプロパティを手動で変更し、ビルド全体を2回実行する必要があります。
質問:異なるプロパティを使用してsonar:sonar
ゴールを単純に2回実行するようにmavenを構成するにはどうすればよいですか?
これにより、ビルドの時間を大幅に節約できます。私はすでに この同様の質問 を見つけましたが、今のところ答えはありません。ありがとう!
Eldad AKがプロファイルに関して与えた以前の回答を拡張します。
次のように2つの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の2つの実行が開始され、それぞれに別のsonar.branch値が設定されます。 Sonarでは、最初の分析後に必要な品質プロファイルを構成できます。
MavenとAntの組み合わせが機能する可能性があります。最初のソナー分析にMavenを使用し、既に Maven Antrun Plugin を使用して、 SonarQube Ant Task を使用して定義された別のSonarQube構成を実行します。 =。
mavenプロファイル を選択します。
各プロファイルには独自のプロパティがあります。
これがお役に立てば幸いです。