in src/main/java/org/apache/maven/plugins/site/render/SiteMojo.java [128:179]
private void renderLocale(Locale locale, List<MavenReportExecution> reports, List<Locale> supportedLocales)
throws IOException, RendererException, MojoFailureException, MojoExecutionException {
SiteRenderingContext context = createSiteRenderingContext(locale);
context.addSiteLocales(supportedLocales);
if (!locale.equals(SiteTool.DEFAULT_LOCALE)) {
context.addSiteDirectory(new File(generatedSiteDirectory, locale.toString()));
} else {
context.addSiteDirectory(generatedSiteDirectory);
}
context.setInputEncoding(getInputEncoding());
context.setOutputEncoding(getOutputEncoding());
context.setValidate(validate);
if (validate) {
getLog().info("Validation is switched on, xml input documents will be validated!");
}
File outputDir = getOutputDirectory(locale);
Map<String, DocumentRenderer> documents = locateDocuments(context, reports, locale);
// copy resources
siteRenderer.copyResources(context, outputDir);
// 1. render Doxia documents first
List<DocumentRenderer> nonDoxiaDocuments = renderDoxiaDocuments(documents, context, outputDir, false);
// prepare external reports
for (MavenReportExecution mavenReportExecution : reports) {
MavenReport report = mavenReportExecution.getMavenReport();
report.setReportOutputDirectory(outputDir);
}
// 2. then non-Doxia documents (e.g., reports)
renderNonDoxiaDocuments(nonDoxiaDocuments, context, outputDir);
// 3. Generated docs must be (re-)done afterwards as they are often generated by reports
context.getSiteDirectories().clear();
if (!locale.equals(SiteTool.DEFAULT_LOCALE)) {
context.addSiteDirectory(new File(generatedSiteDirectory, locale.toString()));
} else {
context.addSiteDirectory(generatedSiteDirectory);
}
Map<String, DocumentRenderer> generatedDocuments =
siteRenderer.locateDocumentFiles(context, false /* not editable */);
renderDoxiaDocuments(generatedDocuments, context, outputDir, true);
// copy generated resources also
siteRenderer.copyResources(context, outputDir);
}