Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Installation (Ubuntu)

Pre-requisite

  • Database (We are using the default h2 db)
  • Java 8
  • Both must be pre-installed on your machine

Installing the Web Server

Code Block
languagebash
### As root (or sudo infront of all commands)###
# Create sonar user and set password
adduser --no-create-home --disabled-login --disabled-password sonar
passwd sonar

# Get the latest nexus oss version
mkdir -p /tmp/install/cd 
wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.2.zip -P /tmp/install/

# Unzip and point to latest (ex 6.2)
mkdir -p /opt/sonar
unzip --help/tmp/install/sonarqube-6.2.zip -d /opt/sonar/
ln -sfn /opt/sonar/sonarqube-6.2 /opt/sonar/current



#Owned by sonar
chown -R sonar:sonar /opt/sonar

Systemd service

...

languagebash

...

Table of Contents

For quality analysis we are using SonarQube at SonarQube.com

UVMS projects


CI analysis

Job Configuration

Sonarqube analysis must be done with JDK 8!
SonarScanner is deprecated and analysis should be done with maven


Preview (pull request)

For pull request we don't want to upload the result to sonar but we wan't to check quality gates&etc so use preview mode

Code Block
languagebash
 -Dsonar.analysis.mode=preview

Run with JDK8+

If the project is build with JDK8 or newer versions:use "Invoke top-level Maven targets" in a post build step:

Code Block
languagebash
titleInvoke top-level Maven targets
Maven Version=Maven3
Goals=$SONAR_MAVEN_GOAL -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_AUTH_TOKEN $SONAR_EXTRA_PROPS

Image Added

Run with JDK7 or older

If the project is build with JDK7 or older versions: use "Execute shell" in a post build step (SonarScanner is deprecated)

Code Block
languagebash
titlePost Build Step - Execute Shell
JAVA_HOME=/var/lib/jenkins/tools/hudson.model.JDK/JDK8
PATH=$JAVA_HOME/bin:$PATH
/var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/Maven3/bin/mvn $SONAR_MAVEN_GOAL -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_AUTH_TOKEN $SONAR_EXTRA_PROPS

Image Added

Global Tool Configuration

SonarQube Scanner is deprecated and should not be used.

Image Added

Global System Configuration 

Jenkins is configured to use SonarQube.com (uses token GLESYS_JENKINS in sonarqube.com for uvms github user)

(extra options: -Dsonar.organization=uvms-github -Dsonar.exclusions=**/apidocs/** -Dsonar.dynamicAnalysis=reuseReports)

Image Added

IDE analysis

For IntelliJ/Eclipse use SonarLint

Analysis

For the current src file right click and "Analyze File with SonarLint"

Ex in IntelliJ:

Image Added

Configure

Add Sonar server under the settings for Sonarlint 

Use https://sonarqube.com (no need for authentication as we only do preview analysis)

Ex in IntelliJ:

Image Added