public void assertConfigurationsHaveUniqueOutputDirectories( BuildConfigurationCollection configCollection) throws Exception { Collection<BuildConfiguration> allConfigs = configCollection.getAllConfigurations(); Map<Root, BuildConfiguration> outputPaths = new HashMap<>(); for (BuildConfiguration config : allConfigs) { if (config.isActionsEnabled()) { BuildConfiguration otherConfig = outputPaths.get(config.getOutputDirectory()); if (otherConfig != null) { throw new IllegalStateException( "The output path '" + config.getOutputDirectory() + "' is the same for configurations '" + config + "' and '" + otherConfig + "'"); } else { outputPaths.put(config.getOutputDirectory(), config); } } } }