How to give .class files path in Dsonar.java.binaries from target folder
Asked by tanmoysahat:

Hi All

Recently I am facing an issue while setting binary path in my sonar maven 3 task in bamboo pipeline.

I am using below

-Dsonar.login=some login key -Dsonar.test.inclusions=src/main/java -Dsonar.java.binaries=gen/main/java

But when I pass the binary path as gen/main/java or target/classes system bamboo is unable to find that location or .class files.

So how to set .class files path in sonar.java.binaries to get it from generated target folder.

Or what exactly yhe path I need to provide.

Thanks


Answers:
author: Lasse Langhorn
body: Hi,

If you have defined your Sonar binaries as a [Bamboo capability](https://confluence.atlassian.com/bamboo/agents-and-capabilities-289277114.html)in Bamboo you can use this capability in your Maven 3.x task like so:

```
-Dsonar.login=some login key -Dsonar.test.inclusions=src/main/java -Dsonar.java.binaries=${bamboo.capability.<your-sonar-capability-label>}
```

Bamboo will translate your ${bamboo.capability.\<your-sonar-capability-label\>} variable to the path of the Sonar binaries eg. /pack/sonar-home/.

Hope this will help you.

Regards

Lasse Langhorn

comments: author: tanmoysahat
body: Hi [@Lasse Langhorn](/t5/user/viewprofilepage/user-id/1261572)

Thanks for your replay.

So I have set it like below

-Dsonar.login=loginkey -Dsonar.test.inclusions=src/main/java -Dsonar.java.binaries=${bamboo.capability.sonar.java.binaries}

but I getting below error

\[ERROR\] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.7.0.1746:sonar (default-cli) on project ui-test-framework: No files nor directories matching '${bamboo.capability.sonar.java.binaries}' -\> \[Help 1\]


author: Lasse Langhorn
body: Hi,

What is your Sonar capability key in Bamboo for the Sonar capability?

Go to Bamboo administration \> Server capabilities -\> Click on your Sonar capability and then look the capabilityKey parameter in the URL of the page: eg. capabilityKey=system.jdk.JDK+1.7.0.80

Then you can use the capabilityKey in the Maven task:

```
-Dsonar.login=loginkey -Dsonar.test.inclusions=src/main/java -Dsonar.java.binaries=${bamboo.capability.<sonar.capability.key>}
```

Is this capability key the same as "sonar.java.binaries"?

Regards

Lasse Langhorn


author: tanmoysahat
body: Hi [@Lasse Langhorn](/t5/user/viewprofilepage/user-id/1261572)

Thanks for the quick response. But I don't have the admin permission.

Can we give the path like -Dsonar.java.binaries=${WORKSPACE}/\*\*/target/classes

is that possible ?


author: Lasse Langhorn
body: Hi,

Try this:

```
-Dsonar.java.binaries=${bamboo.build.working.directory}/target/classes
```

Regards

Lasse Langhorn


author: tanmoysahat
body: Hi [@Lasse Langhorn](/t5/user/viewprofilepage/user-id/1261572)

I have tried that and looks like there are no .class files inside target.

Do you have any idea whre the class files will get generate ?

Thanks.

Tanmoy


author: tanmoysahat
body: [@Lasse Langhorn](/t5/user/viewprofilepage/user-id/1261572) thanks

It works -Dsonar.java.binaries=${bamboo.build.working.directory}/target/classes but before that I added a maven 3.x task to generate the target with goal clean compile.


author: Lasse Langhorn
body: Hi [@tanmoysahat](/t5/user/viewprofilepage/user-id/3895695)

That is great. I assumed your project was had a Maven setup so that is why I gave you the path /target/classes.

Regards

Lasse Langhorn