1

CI環境では、現在、ビルドサーバー(Atlassian Bambooベース)とSonarQubeインスタンス(バージョン6.0および6.5)が2つあります。当初、CIサーバーは6.0 SonarQubeインスタンスと通信するように構成されていました。今、私たちは新しいSonarQube 6.5インスタンスに話をしなければならない私たちのCIサーバー上で実行されている別のGradleベースのプロジェクトを持っている複数のSonarQubeインスタンスをGradleビルドで構成する

systemProp.sonar.host.url=<http url of SonarQube 6.0 instance> 
systemProp.sonar.login=<username here> 
systemProp.sonar.password=<password here> 

:これは、このような当社のCIサーバ上の/home/bamboo/.gradle/gradle.propertiesファイルで構成されています。私はこれを設定しようとしましたが、いつも失敗しました。私がこれまで行ってきた

もの:

を追加しましたコマンドライン引数のGradleラッパーコマンドへ: 私はGradleのコマンドに-Dsonar.host.url=-Dsonar.login=-Dsonar.password=を追加しようとしています。これはうまくいかないので、私はまた、-DsystemProp.sonar.host.url=,-DsystemProp.sonar.login=,-DsystemProp.sonar.password=を使って、SonarQubeシステムプロパティとしてコマンドライン引数を設定しようとしました。これはどちらもうまくいかなかった。

はbuild.gradleファイル にプロパティを追加しました - このようなbuild.gradleファイルに追加されたプロパティを:すべてのケースで

sonarqube { 
    properties { 
     property "sonar.host.url", "<http url of SonarQube 6.0 instance>" 
     property "sonar.login", "<username here>" 
     property "sonar.password", "<password here>" 
     ...<other SonarQube analysis settings here>... 
    } 
} 

、CIサーバは間違ったSonarQubeインスタンス(6.0)に話を聞きました。私の質問は、別のSonarQubeインスタンスと話すように単一のプロジェクトを構成できるかどうかです。ご覧のとおり、Gradle 3.2.1をビルドツールとして使用しています。また、org.sonarqube Gradleプラグインも使用しています。

ありがとうございました。

アンドレ

答えて

1

あなたの最初の試みでは、コマンドラインからシステムプロパティを設定しているため、動作しますが、後にプロジェクトのプロパティから、それを設定すると、設定された値にシステムプロパティをリセットしませんでした。 の構文は、-Pコマンドラインプロジェクトのプロパティではなく、gradle.propertiesファイルでのみサポートされているため、2度目の試行では機能しませんでした。

SonarQubeスキャナがDSLを介して設定された値よりもシステムプロパティ値を優先し、ローカル設定の助けを借りてビルドスクリプトで設定されているものを変更できるので、3度目の試行では機能しませんでした。

ビルドスクリプトでシステムプロパティを手動で設定する必要があります。これにより、プロジェクトプロパティから自動的に設定されたものが上書きされます。ユーザファイルがプロジェクトファイルを上書きするため、プロジェクトgradle.propertiesを使用すると機能しません。ビルドスクリプトにはSystem.properties.'sonar.login' = '...'のようなものが必要です。ハードコードするか、gradle.propertiesファイルまたは-Pパラメータで設定できるプロジェクトプロパティを使用します。


これ以外にも、ビルドサーバのGradle Userディレクトリに設定することは決してありません。ほとんどのビルドサーバーは、分散マシン上で実行されるビルドエージェントを使用するため、すべてのビルドエージェントが同じように構成されていることを常に確認する必要があります。私は常にシステムのプロパティや環境のプロパティやコマンドラインの引数を設定することによって、ビルドサーバの設定をその設定に従って設定します。

ちょうど私の2ct。

関連する問題