ensureNoDuplicateName(coreExtensions);
coreExtensionRepository.setLoadedCoreExtensions(coreExtensions);
- LOG.info("Loaded core extensions: {}", coreExtensions.stream().map(CoreExtension::getName).collect(Collectors.joining(", ")));
+ if (!coreExtensions.isEmpty()) {
+ LOG.info("Loaded core extensions: {}", coreExtensions.stream().map(CoreExtension::getName).collect(Collectors.joining(", ")));
+ }
}
private static void ensureNoDuplicateName(Set<CoreExtension> coreExtensions) {
} else if (issues) {
LOG.info("Issues mode");
LOG.warn("The use of the issues mode (sonar.analysis.mode=issues) is deprecated. This mode will be dropped in the future.");
- } else {
- LOG.info("Publish mode");
}
if (mediumTestMode) {
LOG.info("Medium test mode");
}
public void execute() {
- // If this is a issues mode analysis then we should not upload reports
String taskId = null;
- if (!analysisMode.isIssues()) {
- File report = generateReportFile();
- if (properties.shouldKeepReport()) {
- LOG.info("Analysis report generated in " + reportDir);
- }
- if (!analysisMode.isMediumTest()) {
- taskId = upload(report);
- }
+ File report = generateReportFile();
+ if (properties.shouldKeepReport()) {
+ LOG.info("Analysis report generated in " + reportDir);
+ }
+ if (!analysisMode.isMediumTest()) {
+ taskId = upload(report);
}
logSuccess(taskId);
}
File reportZip = temp.newFile("scanner-report", ".zip");
ZipUtils.zipDir(reportDir.toFile(), reportZip);
stopTime = System.currentTimeMillis();
- LOG.info("Analysis reports compressed in {}ms, zip size={}", stopTime - startTime, FileUtils.byteCountToDisplaySize(FileUtils.sizeOf(reportZip)));
+ LOG.info("Analysis report compressed in {}ms, zip size={}", stopTime - startTime, FileUtils.byteCountToDisplaySize(FileUtils.sizeOf(reportZip)));
return reportZip;
} catch (IOException e) {
throw new IllegalStateException("Unable to prepare analysis report", e);
Profiler profiler = Profiler.create(LOG);
if (componentKey != null) {
url += "?component=" + ScannerUtils.encodeForUrl(componentKey);
- profiler.startInfo("Load settings for component '" + componentKey + "'");
+ profiler.startInfo("Load project settings");
} else {
profiler.startInfo("Load global settings");
}
*/
package org.sonar.scanner.scan;
-import java.nio.file.Path;
import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
import java.util.Locale;
import java.util.Map;
-import java.util.Optional;
-import org.apache.commons.lang.StringUtils;
import org.picocontainer.injectors.ProviderAdapter;
import org.sonar.api.batch.bootstrap.ProjectDefinition;
import org.sonar.api.batch.fs.internal.DefaultInputModule;
import org.sonar.api.batch.fs.internal.DefaultInputProject;
-import org.sonar.api.scan.filesystem.PathResolver;
import org.sonar.api.utils.log.Logger;
import org.sonar.api.utils.log.Loggers;
import org.sonar.scanner.scan.filesystem.ScannerComponentIdGenerator;
LOG.debug(" Base dir: {}", module.getBaseDir().toAbsolutePath().toString());
LOG.debug(" Working dir: {}", module.getWorkDir().toAbsolutePath().toString());
LOG.debug(" Module global encoding: {}, default locale: {}", module.getEncoding().displayName(), Locale.getDefault());
- logPaths(" Source paths: ", module.getBaseDir(), module.getSourceDirsOrFiles());
- logPaths(" Test paths: ", module.getBaseDir(), module.getTestDirsOrFiles());
return module;
}
- private static void logPaths(String label, Path baseDir, List<Path> paths) {
- if (!paths.isEmpty()) {
- StringBuilder sb = new StringBuilder(label);
- for (Iterator<Path> it = paths.iterator(); it.hasNext(); ) {
- Path file = it.next();
- Optional<String> relativePathToBaseDir = PathResolver.relativize(baseDir, file);
- if (!relativePathToBaseDir.isPresent()) {
- sb.append(file);
- } else if (StringUtils.isBlank(relativePathToBaseDir.get())) {
- sb.append(".");
- } else {
- sb.append(relativePathToBaseDir.get());
- }
- if (it.hasNext()) {
- sb.append(", ");
- }
- }
- LOG.info(sb.toString());
- }
- }
-
-
}
// 3 Create project
project = new DefaultInputProject(projectReactor.getRoot(), scannerComponentIdGenerator.getAsInt());
+ LOG.info("Project key: {}", project.key());
LOG.info("Base dir: {}", project.getBaseDir().toAbsolutePath().toString());
LOG.info("Working dir: {}", project.getWorkDir().toAbsolutePath().toString());
LOG.debug("Project global encoding: {}, default locale: {}", project.getEncoding().displayName(), Locale.getDefault());
for (ProjectBuilder projectBuilder : projectBuilders) {
try {
+ LOG.debug("Execute project builder: {}", projectBuilder.getClass().getName());
projectBuilder.build(context);
} catch (Exception e) {
throw MessageException.of("Failed to execute project builder: " + getDescription(projectBuilder), e);
ScanProperties properties = getComponentByType(ScanProperties.class);
properties.validate();
- LOG.info("Project key: {}", tree.root().key());
- LOG.info("Project base dir: {}", tree.root().getBaseDir());
properties.organizationKey().ifPresent(k -> LOG.info("Organization key: {}", k));
String branch = tree.root().definition().getBranch();
if (analysisMode.isIssues()) {
getComponentByType(IssueTransition.class).execute();
getComponentByType(JSONReport.class).execute();
+ LOG.info("ANALYSIS SUCCESSFUL");
} else {
getComponentByType(CpdExecutor.class).execute();
getComponentByType(ReportPublisher.class).execute();
getComponentByType(PostJobsExecutor.class).execute();
- LOG.info("ANALYSIS SUCCESSFUL");
-
if (analysisMode.isMediumTest()) {
getComponentByType(AnalysisObservers.class).notifyEndOfScanTask();
}
import java.nio.file.attribute.BasicFileAttributes;
import java.util.Collections;
import java.util.Comparator;
+import java.util.Iterator;
import java.util.List;
+import java.util.Optional;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.sonar.api.batch.fs.InputFile.Type;
import org.sonar.api.batch.fs.internal.DefaultInputModule;
import org.sonar.api.batch.fs.internal.DefaultInputProject;
import org.sonar.api.batch.fs.internal.InputModuleHierarchy;
+import org.sonar.api.scan.filesystem.PathResolver;
import org.sonar.scanner.phases.ModuleCoverageExclusions;
import org.sonar.scanner.phases.ProjectCoverageExclusions;
import org.sonar.scanner.util.ProgressReport;
private void index(DefaultInputModule module, AtomicInteger excludedByPatternsCount) {
if (componentStore.allModules().size() > 1) {
- LOG.info("Indexing files from module {}", module.getName());
+ LOG.info(" Indexing files from module {}", module.getName());
+ LOG.info(" Base dir: {}", module.getBaseDir().toAbsolutePath().toString());
+ logPaths(" Source paths: ", module.getBaseDir(), module.getSourceDirsOrFiles());
+ logPaths(" Test paths: ", module.getBaseDir(), module.getTestDirsOrFiles());
}
ModuleExclusionFilters moduleExclusionFilters = new ModuleExclusionFilters(module);
ModuleCoverageExclusions moduleCoverageExclusions = new ModuleCoverageExclusions(module);
indexFiles(module, moduleExclusionFilters, moduleCoverageExclusions, module.getTestDirsOrFiles(), Type.TEST, excludedByPatternsCount);
}
+ private static void logPaths(String label, Path baseDir, List<Path> paths) {
+ if (!paths.isEmpty()) {
+ StringBuilder sb = new StringBuilder(label);
+ for (Iterator<Path> it = paths.iterator(); it.hasNext(); ) {
+ Path file = it.next();
+ Optional<String> relativePathToBaseDir = PathResolver.relativize(baseDir, file);
+ if (!relativePathToBaseDir.isPresent()) {
+ sb.append(file);
+ } else if (StringUtils.isBlank(relativePathToBaseDir.get())) {
+ sb.append(".");
+ } else {
+ sb.append(relativePathToBaseDir.get());
+ }
+ if (it.hasNext()) {
+ sb.append(", ");
+ }
+ }
+ if (LOG.isDebugEnabled()) {
+ LOG.debug(sb.toString());
+ } else {
+ LOG.info(StringUtils.abbreviate(sb.toString(), 80));
+ }
+ }
+ }
+
private static String pluralizeFiles(int count) {
return count == 1 ? "file" : "files";
}