diff --git a/maven-plugin/src/main/java/hudson/maven/MavenModuleSetBuild.java b/maven-plugin/src/main/java/hudson/maven/MavenModuleSetBuild.java index d3c06d0..364ac47 100644 --- a/maven-plugin/src/main/java/hudson/maven/MavenModuleSetBuild.java +++ b/maven-plugin/src/main/java/hudson/maven/MavenModuleSetBuild.java @@ -1083,7 +1083,9 @@ public class MavenModuleSetBuild extends AbstractMavenBuild<MavenModuleSet,Maven List<MavenProject> mps = embedder.readProjects( pom,true); Map<String,MavenProject> canonicalPaths = new HashMap<String, MavenProject>( mps.size() ); for(MavenProject mp : mps) { - canonicalPaths.put( mp.getBasedir().getCanonicalPath(), mp ); + // Projects are indexed by POM path and not module path because + // Maven allows to have several POMs with different names in the same directory + canonicalPaths.put( mp.getFile().getCanonicalPath(), mp ); } //MavenUtil.resolveModules(embedder,mp,getRootPath(rootPOMRelPrefix),relPath,listener,nonRecursive); @@ -1136,6 +1138,10 @@ public class MavenModuleSetBuild extends AbstractMavenBuild<MavenModuleSet,Maven continue; } File path = new File(mp.getBasedir(), modulePath); + // HUDSON-8391 : Modules are indexed by POM path thus + // by default we have to add the default pom.xml file + if(path.isDirectory()) + path = new File(mp.getBasedir(), modulePath+"/pom.xml"); MavenProject child = abslPath.get( path.getCanonicalPath()); toPomInfo(child,pi,abslPath,infos); }