1. ホーム
  2. maven

[解決済み] プロジェクトのコンパイル済みクラスをsonar.java.binariesで提供してください。

2022-02-07 11:48:11

質問

私は、マルチモジュール・プロジェクトでエラーに悩まされています。

 root 
   module a
   module b
   module c
   pom.xml

mavenのコマンドラインを使用した後. clean sonar:sonar deploy

私はこのエラーを持っている。

ゴールの実行に失敗しました org.sonarsource.scanner.maven:sonar-maven-plugin:3.3.0.603:sonar (default-cli) on project X : あなたのプロジェクトのコンパイルされたクラスを提供してください。 プロジェクトで sonar.java.binaries プロパティを使用する -> [Help 1].

EDIT : 以下は、私の pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project
    xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <groupId>groupeId</groupId>
    <artifactId>artifactId</artifactId>
    <version>version</version>
    <packaging>pom</packaging>
    <name>${project.artifactId}-parent</name>
    <description>description</description>
    <build>
        <plugins>
            <plugin>
                <groupId>org.sonarsource.scanner.maven</groupId>
                <artifactId>sonar-maven-plugin</artifactId>
                <version>3.3.0.603</version>
            </plugin>
        </plugins>
    </build>
    <modules>
        <module>module a</module>
        <module>module b</module>
        <module>module c</module>
    </modules>
</project>

解決方法は?

Mavenの手順を間違った順序で実行している。

  • clean - 以前のビルド出力をすべて削除
  • sonar:sonar - 解析の実行 (ビルド出力が必要)
  • deploy - ビルド &etc...

代わりにこれを試してみてください。

mvn clean deploy sonar:sonar

さて、変更したコードがQuality Gateに合格するまで、あるいは合格しない限り、実際にjarをquot;deploy"したくないという意見がある場合、別のワークフローが必要です。

mvn clean package sonar:sonar
// check quality gate status
// if (qualityGateOk) { deploy }

最後の2つのステップの詳細は、あなたのCIインフラストラクチャに依存します。しかし、Jenkinsの場合、ステップ2は次のようになります。 ドキュメントが充実している