I am struggling with an error with a multi-modules project, the struture is simple, it looks like this :
root module a module b module c pom.xml
After using the maven command line : clean sonar:sonar deploy
I have this error :
Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.3.0.603:sonar (default-cli) on project X : Please provide compiled classes of your project with sonar.java.binaries property -> [Help 1]
EDIT : Here is the structure of my 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>
sonar.java.binaries (required) Comma-separated paths to directories containing the compiled bytecode files corresponding to your source files. sonar.java.libraries. Comma-separated paths to files with third-party libraries (JAR or Zip files) used by your project.
SonarQube Properties and Parameters Global analysis parameters, defined in the UI, apply to all the projects (From the top bar, go to Settings > General Settings) Project analysis parameters, defined in the UI, override global parameters (At a project level, go to Configuration > Settings)
Sonar static analysis helps you build and maintain high-quality Java code. Covering popular build systems, standards and versions, Sonar elevates your coding game while keeping vulnerabilities at bay.
SonarQube is an open-source platform developed by SonarSource for continuous inspection of code quality to perform automatic reviews with static analysis of code to detect bugs, code smells, and security vulnerabilities on 20+ programming languages.
You're running your Maven steps in the wrong order:
clean
- delete all previous build outputsonar:sonar
- run analysis (which requires build output)deploy
- build &etc...Try this instead:
mvn clean deploy sonar:sonar
Now if you're about to object that you don't want to actually "deploy" the jar until/unless the changed code passes the Quality Gate, well... that requires a different workflow:
mvn clean package sonar:sonar // check quality gate status // if (qualityGateOk) { deploy }
The particulars of those last two steps will depend on your CI infrastructure. But for Jenkins, step #2 is well documented
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With