private void mergeReports() {
        File firstReportDir = config.getMergeDirs().get(0);
        ioUtils.copyDir(firstReportDir, config.getMergeDestDir());

        String[] data = new String[config.getMergeDirs().size()];
        for (int i = 0; i < data.length; i++) {
            File dataFile = new File(config.getMergeDirs().get(i), "jscoverage.json");
            data[i] = ioUtils.loadFromFileSystem(dataFile);
        }
        SortedMap<String, FileData> mergedMap = jsonDataMerger.mergeJSONCoverageStrings(data);
        config.getMergeDestDir().mkdirs();
        File mergedJson = new File(config.getMergeDestDir(), "jscoverage.json");
        ioUtils.copy(jsonDataMerger.toJSON(mergedMap), mergedJson);

        File srcDir = new File(config.getMergeDestDir(), jscover.Main.reportSrcSubDir);
        for (int i = 1; i < config.getMergeDirs().size(); i++)
            ioUtils.copyDir(new File( config.getMergeDirs().get(i), jscover.Main.reportSrcSubDir), srcDir);
    }