提交 6a73ccbb 编写于 作者: O Olivier Lamy

fix module tree for complex maven projects (with more than one modules level)

上级 1c606aaa
...@@ -1063,15 +1063,15 @@ public class MavenModuleSetBuild extends AbstractMavenBuild<MavenModuleSet,Maven ...@@ -1063,15 +1063,15 @@ public class MavenModuleSetBuild extends AbstractMavenBuild<MavenModuleSet,Maven
MavenEmbedder embedder = MavenUtil.createEmbedder( mavenEmbedderRequest ); MavenEmbedder embedder = MavenUtil.createEmbedder( mavenEmbedderRequest );
List<MavenProject> mps = embedder.readProjects( pom,true); List<MavenProject> mps = embedder.readProjects( pom,true);
Map<MavenProject,String> relPath = new HashMap<MavenProject,String>(); Map<String,MavenProject> absPath = new HashMap<String, MavenProject>( mps.size() );
for(MavenProject mp : mps) { for(MavenProject mp : mps) {
relPath.put( mp, mp.getBasedir().getAbsolutePath() ); absPath.put( mp.getBasedir().getAbsolutePath(), mp );
} }
//MavenUtil.resolveModules(embedder,mp,getRootPath(rootPOMRelPrefix),relPath,listener,nonRecursive); //MavenUtil.resolveModules(embedder,mp,getRootPath(rootPOMRelPrefix),relPath,listener,nonRecursive);
if(verbose) { if(verbose) {
for (Entry<MavenProject, String> e : relPath.entrySet()) for (Entry<String,MavenProject> e : absPath.entrySet())
logger.printf("Discovered %s at %s\n",e.getKey().getId(),e.getValue()); logger.printf("Discovered %s at %s\n",e.getValue().getId(),e.getKey());
} }
Set<PomInfo> infos = new LinkedHashSet<PomInfo>(); Set<PomInfo> infos = new LinkedHashSet<PomInfo>();
...@@ -1086,7 +1086,7 @@ public class MavenModuleSetBuild extends AbstractMavenBuild<MavenModuleSet,Maven ...@@ -1086,7 +1086,7 @@ public class MavenModuleSetBuild extends AbstractMavenBuild<MavenModuleSet,Maven
if (rootProject == null) { if (rootProject == null) {
rootProject = mps.get( 0 ); rootProject = mps.get( 0 );
} }
toPomInfo(rootProject,null,relPath,infos); toPomInfo(rootProject,null,absPath,infos);
for (PomInfo pi : infos) for (PomInfo pi : infos)
pi.cutCycle(); pi.cutCycle();
...@@ -1099,11 +1099,15 @@ public class MavenModuleSetBuild extends AbstractMavenBuild<MavenModuleSet,Maven ...@@ -1099,11 +1099,15 @@ public class MavenModuleSetBuild extends AbstractMavenBuild<MavenModuleSet,Maven
} }
} }
private void toPomInfo(MavenProject mp, PomInfo parent, Map<MavenProject,String> relPath, Set<PomInfo> infos) { private void toPomInfo(MavenProject mp, PomInfo parent, Map<String,MavenProject> abslPath, Set<PomInfo> infos) {
PomInfo pi = new PomInfo(mp, parent, relPath.get(mp)); PomInfo pi = new PomInfo(mp, parent, mp.getBasedir().getAbsolutePath());
infos.add(pi); infos.add(pi);
for (MavenProject child : mp.getCollectedProjects()) for (String modulePath : mp.getModules())
toPomInfo(child,pi,relPath,infos); {
File path = new File(mp.getBasedir(), modulePath);
MavenProject child = abslPath.get( path.getAbsolutePath());
toPomInfo(child,pi,abslPath,infos);
}
} }
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册