in sonar-plugin-agent/src/main/java/jetbrains/buildserver/sonarplugin/SQRBuildService.java [57:98]
public ProgramCommandLine makeProgramCommandLine() throws RunBuildException {
final String jdkHome = getRunnerContext().getRunnerParameters().get(JavaRunnerConstants.TARGET_JDK_HOME);
if (jdkHome != null) {
getRunnerContext().addEnvironmentVariable("JAVA_HOME", jdkHome);
}
final String sonarScannerRoot = getSonarScannerRoot();
if (sonarScannerRoot == null) {
throw new RunBuildException("No SonarQube Scanner selected");
}
final AgentRunningBuild agentBuild = getBuild();
Map<String, String> environmentVariables = new HashMap<>(getRunnerContext().getBuildParameters().getEnvironmentVariables());
final List<String> programArgs = composeSQRArgs(getRunnerContext().getRunnerParameters(), agentBuild.getSharedConfigParameters(), sonarScannerRoot, agentBuild.getBuildTempDirectory(), environmentVariables);
final boolean useScanner = isUseScannerMain(sonarScannerRoot);
final JavaCommandLineBuilder builder = new JavaCommandLineBuilder();
String agentHomePath = myBuildAgentConfiguration.getAgentHomeDirectory().getPath();
String syncCertPathToFolder = TrustedCertificatesDirectory.getServerCertificatesDirectoryFromHome(agentHomePath);
Path pathToTemporaryTrustStore = SSLTools.cloneKeyStoreWithTC(jdkHome, syncCertPathToFolder);
List<String> jvmAgrs = new ArrayList<>(JavaRunnerUtil.extractJvmArgs(getRunnerContext().getRunnerParameters()));
if (pathToTemporaryTrustStore != null)
jvmAgrs.add("-Djavax.net.ssl.trustStore=" + pathToTemporaryTrustStore);
final ProgramCommandLine build = builder.withClassPath(getClasspath())
.withMainClass(getMainClass(useScanner))
.withJavaHome(jdkHome)
.withBaseDir(agentBuild.getCheckoutDirectory().getAbsolutePath())
.withEnvVariables(environmentVariables)
.withJvmArgs(jvmAgrs)
.withClassPath(getClasspath())
.withProgramArgs(programArgs)
.withWorkingDir(getRunnerContext().getWorkingDirectory().getAbsolutePath()).build();
getLogger().message("Starting SQS from " + sonarScannerRoot);
for (String str : build.getArguments()) {
getLogger().message(str);
}
return build;
}