it-roy-ru.com

Пожалуйста, предоставьте скомпилированные классы вашего проекта с sonar.Java.binaries

Я борюсь с ошибкой в ​​многомодульном проекте, struture прост, это выглядит так:

 root 
   module a
   module b
   module c
   pom.xml

После использования командной строки maven: clean sonar:sonar deploy

Я это ошибка: 

Не удалось выполнить цель org.sonarsource.scanner.maven: сонар-Maven-плагин: 3.3.0.603: сонар (default-cli) для проекта X: Пожалуйста, предоставьте скомпилированные классы вашего проект со свойством sonar.Java.binaries -> [Помощь 1]

Правка: Вот структура моего 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>
12
CommonPeople

Вы выполняете шаги Maven в неправильном порядке:

  • clean - удалить все предыдущие выходные данные сборки
  • sonar:sonar - запустить анализ (который требует вывода сборки)
  • deploy - сборка и т.д ...

Попробуйте это вместо этого:

mvn clean deploy sonar:sonar

Теперь, если вы собираетесь возразить, что вы не хотите «развертывать» флягу до тех пор, пока/или измененный код не пройдет сквозь Quality Gate, ну ... это требует другого рабочего процесса:

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

Детали этих двух последних шагов будут зависеть от вашей инфраструктуры CI. Но для Дженкинса, шаг № 2 хорошо задокументирован

23
G. Ann - SonarSource Team

Я получил ту же ошибку при вызове автономного анализа SonarQube в качестве шага предварительной сборки задания Jenkins, на котором я исправил добавление sonar.Java.binaries=**/target/classes вместе с другими свойствами SonarQube Analysis следующим образом:

sonar.projectKey=TEST-PROJECT
sonar.projectName=TEST-PROJECT
sonar.projectVersion=1.0
sonar.sources=src/main/Java/
sonar.language=Java
sonar.Java.binaries=**/target/classes  
18
Arpit

Вы можете исправить это, передавая sonar.Java.binaries инструментом maven.

mvn sonar: sonar -Dsonar.Host.url = http: // localhost: 9000 -Dsonar.login = faeef1e48b8d00290a0f3cc00021720baf1ca4dd -Dsonar.Java.binaries = D:\aiwb_s **

0
SAN

Для Java двоичные файлы находятся в целевой папке. Вот почему вы должны использовать mvn clean install sonar:sonar, чтобы убедиться, что ваш проект скомпилирован и находится в целевой папке. 

Сонар сканирует ваши двоичные классы. 

0
Gene