}
}
+BuildSnapshot "SonarSource/sonar-scanner-api"
+
switch ($env:RUN)
{
"ci"
<outputDirectory>bin</outputDirectory>
<includes>
<include>sonar-runner.bat</include>
+ <include>sonar-scanner.bat</include>
</includes>
<lineEnding>dos</lineEnding>
<filtered>true</filtered>
<outputDirectory>bin</outputDirectory>
<includes>
<include>sonar-runner</include>
+ <include>sonar-scanner</include>
</includes>
<lineEnding>unix</lineEnding>
<fileMode>0755</fileMode>
<dependency>
<groupId>org.sonarsource.orchestrator</groupId>
<artifactId>sonar-orchestrator</artifactId>
- <version>3.10.1</version>
+ <version>3.11-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>junit</groupId>
package com.sonar.runner.it;
import com.sonar.orchestrator.build.BuildResult;
-import com.sonar.orchestrator.build.SonarRunner;
+import com.sonar.orchestrator.build.SonarScanner;
import com.sonar.orchestrator.locator.ResourceLocation;
import java.io.File;
import java.io.IOException;
import java.util.List;
+import org.apache.commons.lang.SystemUtils;
import org.junit.After;
import org.junit.Rule;
import org.junit.Test;
orchestrator.getServer().provisionProject("java:sample", "Java Sample, with comma");
orchestrator.getServer().associateProjectToQualityProfile("java:sample", "java", "sonar-way");
- SonarRunner build = newScanner(new File("projects/java-sample"))
+ SonarScanner build = newScanner(new File("projects/java-sample"))
.setProperty("sonar.verbose", "true")
.addArguments("-e");
// SONARPLUGINS-3061
orchestrator.getServer().provisionProject("java:bytecode", "Java Bytecode Sample");
orchestrator.getServer().associateProjectToQualityProfile("java:bytecode", "java", "requires-bytecode");
- SonarRunner build = newScanner(new File("projects/java-bytecode"));
+ SonarScanner build = newScanner(new File("projects/java-bytecode"));
orchestrator.executeBuild(build);
Resource project = orchestrator.getServer().getWsClient().find(new ResourceQuery("java:bytecode").setMetrics("lcom4", "violations"));
orchestrator.getServer().provisionProject("java:basedir-with-source", "Basedir with source");
orchestrator.getServer().associateProjectToQualityProfile("java:basedir-with-source", "java", "sonar-way");
- SonarRunner build = newScanner(new File("projects/basedir-with-source"));
+ SonarScanner build = newScanner(new File("projects/basedir-with-source"));
orchestrator.executeBuild(build);
Resource project = orchestrator.getServer().getWsClient().find(new ResourceQuery("java:basedir-with-source").setMetrics("files", "ncloc"));
orchestrator.getServer().provisionProject("SAMPLE", "Java Sample, with comma");
orchestrator.getServer().associateProjectToQualityProfile("SAMPLE", "java", "sonar-way");
- SonarRunner build = newScanner(new File("projects/java-sample"))
+ SonarScanner build = newScanner(new File("projects/java-sample"))
.setProjectKey("SAMPLE");
orchestrator.executeBuild(build);
*/
@Test
public void should_override_working_dir_with_relative_path() {
- SonarRunner build = newScanner(new File("projects/override-working-dir"))
+ SonarScanner build = newScanner(new File("projects/override-working-dir"))
.setProperty("sonar.working.directory", ".overridden-relative-sonar");
orchestrator.executeBuild(build);
@Test
public void should_override_working_dir_with_absolute_path() {
File projectHome = new File("projects/override-working-dir");
- SonarRunner build = newScanner(projectHome)
+ SonarScanner build = newScanner(projectHome)
.setProperty("sonar.working.directory", new File(projectHome, ".overridden-absolute-sonar").getAbsolutePath());
orchestrator.executeBuild(build);
*/
@Test
public void should_fail_if_source_dir_does_not_exist() {
- SonarRunner build = newScanner(new File("projects/bad-source-dirs"));
+ SonarScanner build = newScanner(new File("projects/bad-source-dirs"));
BuildResult result = orchestrator.executeBuildQuietly(build);
assertThat(result.getStatus()).isNotEqualTo(0);
@Test
public void should_log_message_when_deprecated_properties_are_used() {
assumeTrue(!orchestrator.getServer().version().isGreaterThanOrEquals("4.3"));
- SonarRunner build = newScanner(new File("projects/using-deprecated-props"));
+ SonarScanner build = newScanner(new File("projects/using-deprecated-props"));
BuildResult result = orchestrator.executeBuild(build);
String logs = result.getLogs();
*/
@Test
public void should_warn_when_analysis_is_platform_dependent() {
- SonarRunner build = newScanner(new File("projects/java-sample"))
+ SonarScanner build = newScanner(new File("projects/java-sample"))
// ORCH-243
.setSourceEncoding("");
String log = orchestrator.executeBuild(build).getLogs();
public void should_enable_verbose() {
// this line should appear in all versions (LTS-DEV) in debug only
String expectedLog = "Available languages:";
- SonarRunner build = newScanner(new File("projects/java-sample"))
+ SonarScanner build = newScanner(new File("projects/java-sample"))
.setProperty("sonar.verbose", "true");
String logs = orchestrator.executeBuild(build).getLogs();
assertThat(logs).contains(expectedLog);
@Test
public void should_fail_if_unable_to_connect() {
- SonarRunner build = newScanner(new File("projects/java-sample"))
+ SonarScanner build = newScanner(new File("projects/java-sample"))
.setProperty("sonar.host.url", "http://foo");
BuildResult result = orchestrator.executeBuildQuietly(build);
@Test
public void run_from_external_location() throws IOException {
File tempDir = temp.newFolder();
- SonarRunner build = newScanner(tempDir)
+ SonarScanner build = newScanner(tempDir)
.setProperty("sonar.projectBaseDir", new File("projects/java-sample").getAbsolutePath())
.addArguments("-e");
orchestrator.executeBuild(build);
assertThat(project.getVersion()).isEqualTo("1.2.3");
}
+ @Test
+ public void use_old_script_and_old_env_variable() {
+ SonarScanner build = newScanner(new File("projects/java-sample"))
+ .setUseOldSonarRunnerScript(true)
+ .setEnvironmentVariable("SONAR_RUNNER_OPTS", "-Xmx2m");
+ BuildResult executeBuild = orchestrator.executeBuildQuietly(build);
+ assertThat(executeBuild.getStatus()).isNotEqualTo(0);
+ String logs = executeBuild.getLogs();
+ if (SystemUtils.IS_OS_WINDOWS) {
+ assertThat(logs).contains("WARN: sonar-runner.bat script is deprecated. Please use sonar-scanner.bat instead.");
+ assertThat(logs).contains("WARN: SONAR_RUNNER_OPTS is deprecated. Please use SONAR_SCANNER_OPTS instead.");
+ } else {
+ assertThat(logs).contains("WARN: sonar-runner script is deprecated. Please use sonar-scanner instead.");
+ assertThat(logs).contains("WARN: $SONAR_RUNNER_OPTS is deprecated. Please use $SONAR_SCANNER_OPTS instead.");
+ }
+ assertThat(logs).contains("java.lang.OutOfMemoryError");
+ }
+
+ @Test
+ public void use_new_script_and_new_env_variable() {
+ SonarScanner build = newScanner(new File("projects/java-sample"))
+ .setEnvironmentVariable("SONAR_SCANNER_OPTS", "-Xmx2m");
+ BuildResult executeBuild = orchestrator.executeBuildQuietly(build);
+ assertThat(executeBuild.getStatus()).isNotEqualTo(0);
+ String logs = executeBuild.getLogs();
+ assertThat(logs).doesNotContain("sonar-runner");
+ assertThat(logs).doesNotContain("SONAR_RUNNER_OPTS");
+ assertThat(logs).contains("java.lang.OutOfMemoryError");
+ }
+
private String findbugsFileKey() {
if (orchestrator.getServer().version().isGreaterThanOrEquals("4.2")) {
return "java:bytecode:src/HasFindbugsViolation.java";
SonarScanner newScanner(File baseDir, String... keyValueProperties) {
SonarScanner scannerCli = SonarScanner.create(baseDir, keyValueProperties);
- scannerCli.setRunnerVersion(artifactVersion().toString());
+ scannerCli.setScannerVersion(artifactVersion().toString());
return scannerCli;
}
+
}
<configuration>
<rules>
<requireFilesSize>
- <minsize>490000</minsize>
- <maxsize>500000</maxsize>
+ <minsize>500000</minsize>
+ <maxsize>510000</maxsize>
<files>
<file>${project.build.directory}/sonar-scanner-${project.version}.zip</file>
</files>
echo "$FOO"
}
+echo WARN: 'sonar-runner' script is deprecated. Please use 'sonar-scanner' instead.
+
if [ -z "$SONAR_RUNNER_HOME" ] ; then
PRG="$0"
JAVA_CMD="`which java`"
fi
+if [ -n "$SONAR_RUNNER_OPTS" ] ;
+then
+ echo WARN: '$SONAR_RUNNER_OPTS' is deprecated. Please use '$SONAR_SCANNER_OPTS' instead.
+ if [ -z "$SONAR_SCANNER_OPTS" ] ; then
+ SONAR_SCANNER_OPTS=$SONAR_RUNNER_OPTS
+ fi
+fi
+
JAR_FILE="${SONAR_RUNNER_HOME}"/lib/sonar-scanner-cli-${project.version}.jar
PROJECT_HOME=`pwd`
exec "$JAVA_CMD" \
-Djava.awt.headless=true \
- $SONAR_RUNNER_OPTS \
+ $SONAR_SCANNER_OPTS \
-classpath $JAR_FILE \
- "-Drunner.home=\${SONAR_RUNNER_HOME}" \
+ "-Dscanner.home=\${SONAR_RUNNER_HOME}" \
"-Dproject.home=\${PROJECT_HOME}" \
org.sonarsource.scanner.cli.Main "$@"
@REM set local scope for the variables with windows NT shell
@setlocal
+echo WARN: sonar-runner.bat script is deprecated. Please use sonar-scanner.bat instead.
+
@REM ==== START VALIDATION ====
@REM *** JAVA EXEC VALIDATION ***
if not "%JAVA_HOME%" == "" goto foundJavaHome
:OkJava
if NOT "%SONAR_RUNNER_HOME%"=="" goto cleanSonarRunnerHome
set SONAR_RUNNER_HOME=%~dp0..
-goto run
+goto sonarRunnerOpts
:cleanSonarRunnerHome
@REM If the property has a trailing backslash, remove it
if "%SONAR_RUNNER_HOME:~-1%"=="\" set SONAR_RUNNER_HOME=%SONAR_RUNNER_HOME:~0,-1%
@REM Check if the provided SONAR_RUNNER_HOME is a valid install dir
-IF EXIST "%SONAR_RUNNER_HOME%\lib\sonar-scanner-cli-${project.version}.jar" goto run
+IF EXIST "%SONAR_RUNNER_HOME%\lib\sonar-scanner-cli-${project.version}.jar" goto sonarRunnerOpts
echo.
echo ERROR: SONAR_RUNNER_HOME exists but does not point to a valid install
echo.
goto error
-
+@REM ==== HANDLE DEPRECATED SONAR_RUNNER_OPTS ====
+:sonarRunnerOpts
+if "%SONAR_RUNNER_OPTS%" == "" (
+ goto run
+) else (
+ echo WARN: SONAR_RUNNER_OPTS is deprecated. Please use SONAR_SCANNER_OPTS instead.
+ if not "%SONAR_SCANNER_OPTS%" == "" (set SONAR_SCANNER_OPTS=%SONAR_RUNNER_OPTS%)
+)
@REM ==== START RUN ====
:run
set PROJECT_HOME=%CD%
-%JAVA_EXEC% -Djava.awt.headless=true %SONAR_RUNNER_OPTS% -cp "%SONAR_RUNNER_HOME%\lib\sonar-scanner-cli-${project.version}.jar" "-Drunner.home=%SONAR_RUNNER_HOME%" "-Dproject.home=%PROJECT_HOME%" org.sonarsource.scanner.cli.Main %*
+%JAVA_EXEC% -Djava.awt.headless=true %SONAR_SCANNER_OPTS% -cp "%SONAR_RUNNER_HOME%\lib\sonar-scanner-cli-${project.version}.jar" "-Dscanner.home=%SONAR_RUNNER_HOME%" "-Dproject.home=%PROJECT_HOME%" org.sonarsource.scanner.cli.Main %*
if ERRORLEVEL 1 goto error
goto end
--- /dev/null
+#!/bin/sh
+#
+# SonarQube Scanner Startup Script for Unix
+#
+# Optional ENV vars:
+# SONAR_SCANNER_HOME - location of runner's installed home dir
+# SONAR_SCANNER_OPTS - parameters passed to the Java VM when running SonarQube Scanner
+
+# The following notice only apply to real_path function copied from
+# https://sites.google.com/site/jdisnard/realpath
+# Copyright 2010 Jon Disnard. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this list of
+# conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice, this list
+# of conditions and the following disclaimer in the documentation and/or other materials
+# provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY Jon Disnard ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are those of the
+# authors and should not be interpreted as representing official policies, either expressed
+# or implied, of Jon Disnard.
+real_path () {
+ OIFS=$IFS
+ IFS='/'
+ for I in $1
+ do
+ # Resolve relative path punctuation.
+ if [ "$I" = "." ] || [ -z "$I" ]
+ then continue
+ elif [ "$I" = ".." ]
+ then FOO="${FOO%%/${FOO##*/}}"
+ continue
+ else FOO="${FOO}/${I}"
+ fi
+
+ # Dereference symbolic links.
+ if [ -h "$FOO" ] && [ -x "/bin/ls" ]
+ then IFS=$OIFS
+ set `/bin/ls -l "$FOO"`
+ while shift ;
+ do
+ if [ "$1" = "->" ]
+ then FOO=$2
+ shift $#
+ break
+ fi
+ done
+ fi
+ done
+ IFS=$OIFS
+ echo "$FOO"
+}
+
+if [ -z "$SONAR_SCANNER_HOME" ] ; then
+ PRG="$0"
+
+ if [ -h "$PRG" ] ; then
+ # resolve symlinks
+ PRG=`real_path "$PRG"`
+ fi
+
+ SONAR_SCANNER_HOME=`dirname "$PRG"`/..
+
+ # make it fully qualified
+ SONAR_SCANNER_HOME=`cd "$SONAR_SCANNER_HOME" && pwd`
+fi
+
+# check that the SONAR_SCANNER_HOME has been correctly set
+if [ ! -f "$SONAR_SCANNER_HOME/lib/sonar-scanner-cli-${project.version}.jar" ] ; then
+ echo '$SONAR_SCANNER_HOME' does not point to a valid installation directory: $SONAR_SCANNER_HOME
+ exit 1
+fi
+
+if [ -n "$JAVA_HOME" ]
+then
+ JAVA_CMD="$JAVA_HOME/bin/java"
+else
+ JAVA_CMD="`which java`"
+fi
+
+JAR_FILE="${SONAR_SCANNER_HOME}"/lib/sonar-scanner-cli-${project.version}.jar
+PROJECT_HOME=`pwd`
+
+#echo "Info: Using sonar-scanner at $SONAR_SCANNER_HOME"
+#echo "Info: Using java at $JAVA_CMD"
+#echo "Info: Using classpath $JAR_FILE"
+#echo "Info: Using project $PROJECT_HOME"
+
+exec "$JAVA_CMD" \
+ -Djava.awt.headless=true \
+ $SONAR_SCANNER_OPTS \
+ -classpath $JAR_FILE \
+ "-Dscanner.home=\${SONAR_SCANNER_HOME}" \
+ "-Dproject.home=\${PROJECT_HOME}" \
+ org.sonarsource.scanner.cli.Main "$@"
+
--- /dev/null
+@REM SonarQube Runner Startup Script for Windows
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars:
+@REM SONAR_SCANNER_HOME - location of runner's installed home dir
+@REM SONAR_SCANNER_OPTS - parameters passed to the Java VM when running Sonar
+
+@echo off
+
+set ERROR_CODE=0
+
+@REM set local scope for the variables with windows NT shell
+@setlocal
+
+@REM ==== START VALIDATION ====
+@REM *** JAVA EXEC VALIDATION ***
+if not "%JAVA_HOME%" == "" goto foundJavaHome
+
+for %%i in (java.exe) do set JAVA_EXEC=%%~$PATH:i
+
+if not "%JAVA_EXEC%" == "" (
+ set JAVA_EXEC="%JAVA_EXEC%"
+ goto OkJava
+)
+
+if not "%JAVA_EXEC%" == "" goto OkJava
+
+echo.
+echo ERROR: JAVA_HOME not found in your environment, and no Java
+echo executable present in the PATH.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation, or add "java.exe" to the PATH
+echo.
+goto error
+
+:foundJavaHome
+if EXIST "%JAVA_HOME%\bin\java.exe" goto foundJavaExeFromJavaHome
+
+echo.
+echo ERROR: JAVA_HOME exists but does not point to a valid Java home
+echo folder. No "\bin\java.exe" file can be found there.
+echo.
+goto error
+
+:foundJavaExeFromJavaHome
+set JAVA_EXEC="%JAVA_HOME%\bin\java.exe"
+
+@REM *** SONAR SCANNER HOME VALIDATION ***
+:OkJava
+if NOT "%SONAR_SCANNER_HOME%"=="" goto cleanSQScannerHome
+set SONAR_SCANNER_HOME=%~dp0..
+goto run
+
+:cleanSQScannerHome
+@REM If the property has a trailing backslash, remove it
+if "%SONAR_SCANNER_HOME:~-1%"=="\" set SONAR_SCANNER_HOME=%SONAR_SCANNER_HOME:~0,-1%
+
+@REM Check if the provided SONAR_SCANNER_HOME is a valid install dir
+IF EXIST "%SONAR_SCANNER_HOME%\lib\sonar-scanner-cli-${project.version}.jar" goto run
+
+echo.
+echo ERROR: SONAR_SCANNER_HOME exists but does not point to a valid install
+echo directory: %SONAR_SCANNER_HOME%
+echo.
+goto error
+
+
+
+@REM ==== START RUN ====
+:run
+echo %SONAR_SCANNER_HOME%
+
+set PROJECT_HOME=%CD%
+
+%JAVA_EXEC% -Djava.awt.headless=true %SONAR_SCANNER_OPTS% -cp "%SONAR_SCANNER_HOME%\lib\sonar-scanner-cli-${project.version}.jar" "-Dscanner.home=%SONAR_SCANNER_HOME%" "-Dproject.home=%PROJECT_HOME%" org.sonarsource.scanner.cli.Main %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+@REM ==== END EXECUTION ====
+
+:end
+@REM set local scope for the variables with windows NT shell
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+@REM see http://code-bear.com/bearlog/2007/06/01/getting-the-exit-code-from-a-batch-file-that-is-run-from-a-python-program/
+goto exit
+
+:returncode
+exit /B %1
+
+:exit
+call :returncode %ERROR_CODE%
+++ /dev/null
-#Configure here general information about the environment, such as SonarQube DB details for example
-#No information about specific project should appear here
-
-#----- Default SonarQube server
-#sonar.host.url=http://localhost:9000
-
-#----- Default source code encoding
-#sonar.sourceEncoding=UTF-8
-
-#----- Global database settings (not used for SonarQube 5.2+)
-#sonar.jdbc.username=sonar
-#sonar.jdbc.password=sonar
-
-#----- PostgreSQL
-#sonar.jdbc.url=jdbc:postgresql://localhost/sonar
-
-#----- MySQL
-#sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
-
-#----- Oracle
-#sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE
-
-#----- Microsoft SQLServer
-#sonar.jdbc.url=jdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor
--- /dev/null
+#Configure here general information about the environment, such as SonarQube DB details for example
+#No information about specific project should appear here
+
+#----- Default SonarQube server
+#sonar.host.url=http://localhost:9000
+
+#----- Default source code encoding
+#sonar.sourceEncoding=UTF-8
+
+#----- Global database settings (not used for SonarQube 5.2+)
+#sonar.jdbc.username=sonar
+#sonar.jdbc.password=sonar
+
+#----- PostgreSQL
+#sonar.jdbc.url=jdbc:postgresql://localhost/sonar
+
+#----- MySQL
+#sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
+
+#----- Oracle
+#sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE
+
+#----- Microsoft SQLServer
+#sonar.jdbc.url=jdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor
import java.util.Properties;
class Conf {
- private static final String RUNNER_HOME = "runner.home";
- private static final String RUNNER_SETTINGS = "runner.settings";
+ private static final String SCANNER_HOME = "scanner.home";
+ private static final String SCANNER_SETTINGS = "scanner.settings";
private static final String PROJECT_HOME = "project.home";
private static final String PROJECT_SETTINGS = "project.settings";
private static final String PROPERTY_MODULES = "sonar.modules";
}
private Properties loadGlobalProperties() throws IOException {
- Path settingsFile = locatePropertiesFile(cli.properties(), RUNNER_HOME, "conf/sonar-runner.properties", RUNNER_SETTINGS);
+ Path settingsFile = locatePropertiesFile(cli.properties(), SCANNER_HOME, "conf/sonar-scanner.properties", SCANNER_SETTINGS);
if (settingsFile != null && Files.isRegularFile(settingsFile)) {
logger.info("Scanner configuration file: " + settingsFile);
return toProperties(settingsFile);
private Properties loadProjectProperties() throws IOException {
Properties rootProps = new Properties();
Properties knownProps = new Properties();
-
+
knownProps.putAll(System.getProperties());
knownProps.putAll(cli.properties());
if (parentProps.containsKey(PROPERTY_MODULES)) {
for (String module : getListFromProperty(parentProps, PROPERTY_MODULES)) {
Properties moduleProps = extractModuleProperties(module, parentProps);
- //higher priority to child configuration files
+ // higher priority to child configuration files
loadModuleConfigFile(parentBaseDir, moduleProps, module);
// the child project may have children as well
private static Path locatePropertiesFile(Properties props, String homeKey, String relativePathFromHome, String settingsKey) {
Path settingsFile = null;
- String runnerHome = props.getProperty(homeKey, "");
- if (!"".equals(runnerHome)) {
- settingsFile = Paths.get(runnerHome, relativePathFromHome);
+ String scannerHome = props.getProperty(homeKey, "");
+ if (!"".equals(scannerHome)) {
+ settingsFile = Paths.get(scannerHome, relativePathFromHome);
}
return locatePropertiesFile(settingsFile, props, settingsKey);
/**
* Arguments :
* <ul>
- * <li>runner.home: optional path to runner home (root directory with sub-directories bin, lib and conf)</li>
- * <li>runner.settings: optional path to runner global settings, usually ${runner.home}/conf/sonar-runner.properties.
- * This property is used only if ${runner.home} is not defined</li>
+ * <li>scanner.home: optional path to Scanner home (root directory with sub-directories bin, lib and conf)</li>
+ * <li>scanner.settings: optional path to runner global settings, usually ${scanner.home}/conf/sonar-scanner.properties.
+ * This property is used only if ${scanner.home} is not defined</li>
* <li>project.home: path to project root directory. If not set, then it's supposed to be the directory where the runner is executed</li>
* <li>project.settings: optional path to project settings. Default value is ${project.home}/sonar-project.properties.</li>
* </ul>
logger.info("SonarQube Scanner " + ScannerVersion.version());
logger.info(java());
logger.info(os());
- String runnerOpts = system.getenv("SONAR_RUNNER_OPTS");
- if (runnerOpts != null) {
- logger.info("SONAR_RUNNER_OPTS=" + runnerOpts);
+ String scannerOpts = system.getenv("SONAR_SCANNER_OPTS");
+ if (scannerOpts != null) {
+ logger.info("SONAR_SCANNER_OPTS=" + scannerOpts);
}
}
@Test
public void should_load_global_settings_by_home() throws Exception {
Path home = Paths.get(getClass().getResource("ConfTest/shouldLoadRunnerSettingsByHome/").toURI());
- args.setProperty("runner.home", home.toAbsolutePath().toString());
+ args.setProperty("scanner.home", home.toAbsolutePath().toString());
Properties properties = conf.properties();
assertThat(properties.get("sonar.prop")).isEqualTo("value");
@Test
public void should_load_conf_by_direct_path() throws Exception {
Path settings = Paths.get(getClass().getResource("ConfTest/shouldLoadRunnerSettingsByDirectPath/other-conf.properties").toURI());
- args.setProperty("runner.settings", settings.toAbsolutePath().toString());
+ args.setProperty("scanner.settings", settings.toAbsolutePath().toString());
assertThat(conf.properties().get("sonar.prop")).isEqualTo("otherValue");
}
public void shouldLoadCompleteConfiguration() throws Exception {
Path runnerHome = Paths.get(getClass().getResource("ConfTest/shouldLoadCompleteConfiguration/runner").toURI());
Path projectHome = Paths.get(getClass().getResource("ConfTest/shouldLoadCompleteConfiguration/project").toURI());
- args.setProperty("runner.home", runnerHome.toAbsolutePath().toString());
+ args.setProperty("scanner.home", runnerHome.toAbsolutePath().toString());
args.setProperty("project.home", projectHome.toAbsolutePath().toString());
Properties properties = conf.properties();
assertThat(properties.getProperty("module3.sonar.projectName")).isEqualTo("Module 3");
assertThat(properties.getProperty("sonar.projectBaseDir")).isEqualTo(projectHome.toString());
}
-
+
@Test
public void shouldCliOverrideSettingFiles() throws Exception {
Path projectHome = Paths.get(getClass().getResource("ConfTest/shouldLoadModuleConfigurationOverrideBasedir/project").toURI());
assertThat(properties.getProperty("module3.sonar.projectName")).isEqualTo("mod3");
assertThat(properties.getProperty("sonar.projectBaseDir")).isEqualTo(projectHome.toString());
}
-
+
@Test
public void shouldUseCliToDiscoverModules() throws Exception {
Path projectHome = Paths.get(getClass().getResource("ConfTest/shouldLoadModuleConfigurationOverrideBasedir/project").toURI());
public void should_print() {
mockOs();
mockJava();
- when(mockSystem.getenv("SONAR_RUNNER_OPTS")).thenReturn("arg");
+ when(mockSystem.getenv("SONAR_SCANNER_OPTS")).thenReturn("arg");
SystemInfo.print(logs);
verify(mockSystem).getProperty("java.version");
verify(mockSystem).getProperty("os.version");
- verify(mockSystem).getenv("SONAR_RUNNER_OPTS");
+ verify(mockSystem).getenv("SONAR_SCANNER_OPTS");
verify(logs, never()).info("SonarQube Scanner null");
verify(logs).info("SonarQube Scanner " + ScannerVersion.version());
verify(logs).info("Java 1.9 oracle (64-bit)");
verify(logs).info("linux 2.5 x64");
- verify(logs).info("SONAR_RUNNER_OPTS=arg");
+ verify(logs).info("SONAR_SCANNER_OPTS=arg");
verifyNoMoreInteractions(logs);
}
}
+++ /dev/null
-overridden.prop=runner scope
-global.prop=jdbc:mysql:localhost/sonar
--- /dev/null
+overridden.prop=runner scope
+global.prop=jdbc:mysql:localhost/sonar
+++ /dev/null
-sonar.prop=value
-sonar.jdbc.url=jdbc:mysql:localhost/sonar
--- /dev/null
+sonar.prop=value
+sonar.jdbc.url=jdbc:mysql:localhost/sonar
configureTravis
build_snapshot SonarSource/sonar-scanner-api
+build_snapshot SonarSource/orchestrator
case "$TARGET" in