# Scan project java before build bin file

**URL:** <https://community.sonarsource.com/t/scan-project-java-before-build-bin-file/121013>\
**Category:** SonarQube Server / Community Build\
**Tags:** scanner\
**Created:** [August 21, 2024, 1:24am UTC](https://community.sonarsource.com/t/scan-project-java-before-build-bin-file/121013 "2024-08-21T01:24:14Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![yoo](https://dub1.discourse-cdn.com/sonarsource/user_avatar/community.sonarsource.com/yoo/32/46572_2.png) [@yoo](https://community.sonarsource.com/u/yoo)\
**Post date:** [August 21, 2024, 1:24am UTC](https://community.sonarsource.com/t/scan-project-java-before-build-bin-file/121013/1 "2024-08-21T01:24:14Z")

</div>

Hi guys,  
I am trying to write Jenkinsfile to build my java project. To speed up the build I need to check sonarscan and quality gate before running maven build command. I searched and couldn’t find any way to do that.

---

<div class="post-metadata">

**Author:** ![Colin](https://dub1.discourse-cdn.com/sonarsource/user_avatar/community.sonarsource.com/colin/32/55255_2.png) [@Colin](https://community.sonarsource.com/u/Colin)\
**Post date:** [August 22, 2024, 5:13am UTC](https://community.sonarsource.com/t/scan-project-java-before-build-bin-file/121013/2 "2024-08-22T05:13:35Z")

</div>

Hey there.

For a proper analysis, you need to have built your Java project before analyzing it. What makes you think this will speed up the build?

---

<div class="post-metadata">

**Author:** ![yoo](https://dub1.discourse-cdn.com/sonarsource/user_avatar/community.sonarsource.com/yoo/32/46572_2.png) [@yoo](https://community.sonarsource.com/u/yoo)\
**Post date:** [August 22, 2024, 8:06am UTC](https://community.sonarsource.com/t/scan-project-java-before-build-bin-file/121013/3 "2024-08-22T08:06:16Z")

</div>

I want sonar only scan code on gitlab before maven build jar file. If sonarqube scan code failed. Jenkins will skip step build jar file.

---

<div class="post-metadata">

**Author:** ![Colin](https://dub1.discourse-cdn.com/sonarsource/user_avatar/community.sonarsource.com/colin/32/55255_2.png) [@Colin](https://community.sonarsource.com/u/Colin)\
**Post date:** [August 22, 2024, 9:44am UTC](https://community.sonarsource.com/t/scan-project-java-before-build-bin-file/121013/4 "2024-08-22T09:44:12Z")

</div>

SonarQube relies on information from the build to perform a proper analysis, so I don’t think this is the right approach.

---

<div class="post-metadata">

**Author:** ![yoo](https://dub1.discourse-cdn.com/sonarsource/user_avatar/community.sonarsource.com/yoo/32/46572_2.png) [@yoo](https://community.sonarsource.com/u/yoo)\
**Post date:** [August 22, 2024, 10:00am UTC](https://community.sonarsource.com/t/scan-project-java-before-build-bin-file/121013/5 "2024-08-22T10:00:21Z")

</div>

I want test, if there are many method to bypass the requirement binary file ?

---

<div class="post-metadata">

**Author:** ![Colin](https://dub1.discourse-cdn.com/sonarsource/user_avatar/community.sonarsource.com/colin/32/55255_2.png) [@Colin](https://community.sonarsource.com/u/Colin)\
**Post date:** [August 22, 2024, 10:22am UTC](https://community.sonarsource.com/t/scan-project-java-before-build-bin-file/121013/6 "2024-08-22T10:22:15Z")

</div>

Sure, you can run the normal `sonar-scanner` and simply set `sonar.java.binaries=.` (a dummy value), but again, this affects the quality of analysis results.

---

<div class="post-metadata">

**Author:** ![yoo](https://dub1.discourse-cdn.com/sonarsource/user_avatar/community.sonarsource.com/yoo/32/46572_2.png) [@yoo](https://community.sonarsource.com/u/yoo)\
**Post date:** [August 22, 2024, 11:57am UTC](https://community.sonarsource.com/t/scan-project-java-before-build-bin-file/121013/7 "2024-08-22T11:57:05Z")

</div>

> [@Colin](#):
>
> affects

I configured sonar.jar.binarires=. , But when scan jenkins emit the error:

```auto
WARN: Access to the multi-values/property set property 'sonar.java.binaries' should be made using 'getStringArray' method. The SonarQube plugin using this property should be updated.
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 23.953s
INFO: Final Memory: 30M/320M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarScanner execution
java.lang.IllegalStateException: Can not execute Findbugs
	at org.sonar.plugins.findbugs.FindbugsExecutor.execute(FindbugsExecutor.java:185)
	at org.sonar.plugins.findbugs.FindbugsSensor.execute(FindbugsSensor.java:130)
	at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:64)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:88)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:61)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:79)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:61)
	at org.sonar.scanner.scan.SpringModuleScanContainer.doAfterStart(SpringModuleScanContainer.java:82)
	at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:188)
	at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:167)
	at org.sonar.scanner.scan.SpringProjectScanContainer.scan(SpringProjectScanContainer.java:398)
	at org.sonar.scanner.scan.SpringProjectScanContainer.scanRecursively(SpringProjectScanContainer.java:394)
	at org.sonar.scanner.scan.SpringProjectScanContainer.doAfterStart(SpringProjectScanContainer.java:363)
	at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:188)
	at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:167)
	at org.sonar.scanner.bootstrap.SpringGlobalContainer.doAfterStart(SpringGlobalContainer.java:139)
	at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:188)
	at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:167)
	at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:71)
	at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:65)
	at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
	at jdk.proxy1/jdk.proxy1.$Proxy0.execute(Unknown Source)
	at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:189)
	at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:138)
	at org.sonarsource.scanner.cli.Main.execute(Main.java:126)
	at org.sonarsource.scanner.cli.Main.execute(Main.java:81)
	at org.sonarsource.scanner.cli.Main.main(Main.java:62)
Caused by: java.lang.IllegalStateException: One (sub)project contains Java source files that are not compiled (/home/jenkins/agent/workspace/dmin_test-scan-no-binary_testing)

```

---

<div class="post-metadata">

**Author:** ![Colin](https://dub1.discourse-cdn.com/sonarsource/user_avatar/community.sonarsource.com/colin/32/55255_2.png) [@Colin](https://community.sonarsource.com/u/Colin)\
**Post date:** [August 22, 2024, 12:59pm UTC](https://community.sonarsource.com/t/scan-project-java-before-build-bin-file/121013/8 "2024-08-22T12:59:13Z")

</div>

That issue is coming from [GitHub - spotbugs/sonar-findbugs: SpotBugs plugin for SonarQube](https://github.com/spotbugs/sonar-findbugs). You should either get in touch with the maintainer, or uninstall it.
