From f6b9f918c292a88c8069effd198061c042197b56 Mon Sep 17 00:00:00 2001 From: Julien HENRY Date: Mon, 7 Jan 2013 17:26:36 +0100 Subject: [PATCH] SONARPLUGINS-2295 If an aggregator module defines "sonar.sources" and has such a folder, a warning should be raised --- .../internal/batch/SonarProjectBuilder.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/sonar/runner/internal/batch/SonarProjectBuilder.java b/src/main/java/org/sonar/runner/internal/batch/SonarProjectBuilder.java index 60ddfb1..1c8b61b 100644 --- a/src/main/java/org/sonar/runner/internal/batch/SonarProjectBuilder.java +++ b/src/main/java/org/sonar/runner/internal/batch/SonarProjectBuilder.java @@ -320,7 +320,7 @@ public final class SonarProjectBuilder { if (project.getSubProjects().isEmpty()) { cleanAndCheckModuleProperties(project); } else { - cleanAggregatorProjectProperties(project); + cleanAndCheckAggregatorProjectProperties(project); // clean modules properties as well for (ProjectDefinition module : project.getSubProjects()) { @@ -349,9 +349,20 @@ public final class SonarProjectBuilder { } @VisibleForTesting - protected static void cleanAggregatorProjectProperties(ProjectDefinition project) { + protected static void cleanAndCheckAggregatorProjectProperties(ProjectDefinition project) { Properties properties = project.getProperties(); + // SONARPLUGINS-2295 + String[] sourceDirs = SonarRunnerUtils.getListFromProperty(properties, PROPERTY_SOURCES); + for (String path : sourceDirs) { + File sourceFolder = getFileFromPath(path, project.getBaseDir()); + if (sourceFolder.isDirectory()) { + LOG.warn("/!\\ A multi-module project can't have source folders, so '{}' won't be used for the analysis. " + + "If you want to analyse files of this folder, you should create another sub-module and move them inside it.", + sourceFolder.toString()); + } + } + // "aggregator" project must not have the following properties: properties.remove(PROPERTY_SOURCES); properties.remove(PROPERTY_TESTS); -- 2.39.5