public ProjectReactor execute() {
    Profiler profiler = Profiler.create(LOG).startInfo("Process project properties");
    Map<String, Map<String, String>> propertiesByModuleIdPath = new HashMap<>();
    extractPropertiesByModule(propertiesByModuleIdPath, "", "", new HashMap<>(scannerProps.properties()));
    var rootModuleProperties = propertiesByModuleIdPath.get("");
    setBaseDirIfNeeded(rootModuleProperties);
    ProjectDefinition rootProject = createModuleDefinition(rootModuleProperties, null);
    rootProjectWorkDir = rootProject.getWorkDir();
    defineChildren(rootProject, propertiesByModuleIdPath, "");
    cleanAndCheckProjectDefinitions(rootProject);
    profiler.stopInfo();
    return new ProjectReactor(rootProject);
  }
@Test
  public void projectBaseDirDefaultToCurrentDirectory() {
    ScannerProperties bootstrapProps = new ScannerProperties(Map.of("sonar.projectKey", "foo"));
    ProjectReactor projectReactor = new ProjectReactorBuilder(bootstrapProps, mock(AnalysisWarnings.class)).execute();
    var def = projectReactor.getRoot();
    assertThat(def.getBaseDir()).isEqualTo(new File("").getAbsoluteFile());
  }