boolean (@NotNull List<Module> scopeModules) { final List<String> modulesWithoutOutputPathSpecified = new ArrayList<>(); boolean projectOutputNotSpecified = false; for (final Module module : scopeModules) { final String outputPath = getModuleOutputPath(module, false); final String testsOutputPath = getModuleOutputPath(module, true); if (outputPath == null && testsOutputPath == null) { CompilerModuleExtension compilerExtension = CompilerModuleExtension.getInstance(module); projectOutputNotSpecified |= compilerExtension != null && compilerExtension.isCompilerOutputPathInherited(); modulesWithoutOutputPathSpecified.add(module.getName()); } else { if (outputPath == null) { if (hasSources(module, JavaSourceRootType.SOURCE)) { modulesWithoutOutputPathSpecified.add(module.getName()); } } if (testsOutputPath == null) { if (hasSources(module, JavaSourceRootType.TEST_SOURCE)) { modulesWithoutOutputPathSpecified.add(module.getName()); } } } } if (modulesWithoutOutputPathSpecified.isEmpty()) { return true; } showNotSpecifiedError( "error.output.not.specified", projectOutputNotSpecified, modulesWithoutOutputPathSpecified, DefaultModuleConfigurationEditorFactory.getInstance().getOutputEditorDisplayName() ); return false; }