in doxia-integration-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java [560:613]
private void populateModulesMenu(
SiteModel siteModel,
Locale locale,
MavenProject project,
List<MavenProject> reactorProjects,
boolean keepInheritedRefs)
throws SiteToolException, IOException {
Objects.requireNonNull(siteModel, "siteModel cannot be null");
Objects.requireNonNull(locale, "locale cannot be null");
Objects.requireNonNull(project, "project cannot be null");
Objects.requireNonNull(reactorProjects, "reactorProjects cannot be null");
Menu menu = siteModel.getMenuRef("modules");
if (menu == null) {
return;
}
if (keepInheritedRefs && menu.isInheritAsRef()) {
return;
}
// we require child modules and reactors to process module menu
if (!project.getModules().isEmpty()) {
if (menu.getName() == null) {
menu.setName(i18n.getString("site-tool", locale, "siteModel.menu.projectmodules"));
}
for (String module : project.getModules()) {
MavenProject moduleProject = getModuleFromReactor(project, reactorProjects, module);
if (moduleProject == null) {
LOGGER.debug("Module " + module + " not found in reactor");
continue;
}
final String pluginId = "org.apache.maven.plugins:maven-site-plugin";
String skipFlag = getPluginParameter(moduleProject, pluginId, "skip");
if (skipFlag == null) {
skipFlag = moduleProject.getProperties().getProperty("maven.site.skip");
}
String siteUrl = "true".equalsIgnoreCase(skipFlag) ? null : getDistMgmntSiteUrl(moduleProject);
String itemName =
(moduleProject.getName() == null) ? moduleProject.getArtifactId() : moduleProject.getName();
String defaultSiteUrl = "true".equalsIgnoreCase(skipFlag) ? null : moduleProject.getArtifactId();
appendMenuItem(project, menu, itemName, siteUrl, defaultSiteUrl);
}
} else if (siteModel.getMenuRef("modules").getInherit() == null) {
// only remove if project has no modules AND menu is not inherited, see MSHARED-174
siteModel.removeMenuRef("modules");
}
}