diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProject.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProject.java index 3533ae4873ab..dc02a145c6d6 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProject.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProject.java @@ -224,13 +224,13 @@ public class MavenProject { private Map collectModulePathsAndNames(MavenModel mavenModel, String baseDir) { String basePath = baseDir + "/"; Map result = new LinkedHashMap<>(); - for (Map.Entry each : collectModulesRelativePathsAndNames(mavenModel).entrySet()) { + for (Map.Entry each : collectModulesRelativePathsAndNames(mavenModel, basePath).entrySet()) { result.put(new Path(basePath + each.getKey()).getPath(), each.getValue()); } return result; } - private Map collectModulesRelativePathsAndNames(MavenModel mavenModel) { + private Map collectModulesRelativePathsAndNames(MavenModel mavenModel, String basePath) { String extension = StringUtil.notNullize(myFile.getExtension()); LinkedHashMap result = new LinkedHashMap<>(); for (String name : mavenModel.getModules()) { @@ -246,6 +246,12 @@ public class MavenProject { if (!name.endsWith("/")) name += "/"; name += MavenConstants.POM_EXTENSION + '.' + extension; } + else { + String systemDependentName = FileUtil.toSystemDependentName(basePath + name); + if (new File(systemDependentName).isDirectory()) { + name += "/" + MavenConstants.POM_XML; + } + } result.put(name, originalName); } diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/CustomPomFileNameTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/CustomPomFileNameTest.java index 0d8dae9beb93..d2b7a9c4cb37 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/CustomPomFileNameTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/CustomPomFileNameTest.java @@ -42,6 +42,28 @@ public class CustomPomFileNameTest extends MavenDomTestCase { assertModules("project", "m1"); } + public void testFolderNameWithXmlExtension() throws Exception { + createProjectSubFile("customName.xml/pom.xml", createPomXml( + "m1" + + "1" + + + "" + + " test" + + " project" + + " 1" + + "")); + + importProject("test" + + "project" + + "1" + + + "" + + " customName.xml" + + ""); + + assertModules("project", "m1"); + } + public void testModuleCompletion() throws Exception { createProjectSubFile("m1/customPom.xml", createPomXml( "m1" +