Skip to content

Commit 14fcff2

Browse files
committed
Allow to give alternative source directories for sites
1 parent 1407ccc commit 14fcff2

File tree

2 files changed

+23
-9
lines changed

2 files changed

+23
-9
lines changed

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ under the License.
2929
</parent>
3030

3131
<artifactId>maven-site-plugin</artifactId>
32-
<version>4.0.0-M17-SNAPSHOT</version>
32+
<version>3.22.0-SNAPSHOT</version>
3333
<packaging>maven-plugin</packaging>
3434

3535
<name>Apache Maven Site Plugin</name>
@@ -198,8 +198,8 @@ under the License.
198198
<mavenVersion>3.6.3</mavenVersion>
199199
<!-- for dependencies -->
200200
<jettyVersion>9.4.57.v20241219</jettyVersion>
201-
<doxiaVersion>2.0.0</doxiaVersion>
202-
<doxiaSitetoolsVersion>2.0.0</doxiaSitetoolsVersion>
201+
<doxiaVersion>2.1.0-SNAPSHOT</doxiaVersion>
202+
<doxiaSitetoolsVersion>2.1.0-SNAPSHOT</doxiaSitetoolsVersion>
203203
<wagonVersion>3.5.3</wagonVersion>
204204
<slf4jVersion>1.7.36</slf4jVersion>
205205
<!-- for ITs -->

src/main/java/org/apache/maven/plugins/site/render/AbstractSiteRenderingMojo.java

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,13 +100,20 @@ public abstract class AbstractSiteRenderingMojo extends AbstractSiteDescriptorMo
100100
* build time mean).
101101
* This directory is expected to have the same structure as <code>siteDirectory</code>
102102
* (ie. one directory per Doxia-source-supported markup types).
103-
*
104-
* todo should we deprecate in favour of reports directly using Doxia Sink API, without this Doxia source
105-
* intermediate step?
103+
* This is never editable.
106104
*/
107105
@Parameter(alias = "workingDirectory", defaultValue = "${project.build.directory}/generated-site")
108106
protected File generatedSiteDirectory;
109107

108+
/**
109+
* Optional list of source directories to be used instead of {@link #siteDirectory} for rendering edit URLs.
110+
* This is only used for documents rendered from {@link #siteDirectory} but not for {@link AbstractSiteRenderingMojo#generatedSiteDirectory}.
111+
* The latter are always considered non-editable!
112+
* @since 3.22.0
113+
*/
114+
@Parameter
115+
protected File[] alternativeSiteSourceDirectories;
116+
110117
/**
111118
* The current Maven session.
112119
*/
@@ -320,14 +327,21 @@ protected SiteRenderingContext createSiteRenderingContext(Locale locale)
320327

321328
// Generate static site
322329
context.setRootDirectory(project.getBasedir());
330+
final SiteDirectory mainSiteDirectory;
323331
if (!locale.equals(SiteTool.DEFAULT_LOCALE)) {
324-
context.addSiteDirectory(new SiteDirectory(new File(siteDirectory, locale.toString()), true));
332+
mainSiteDirectory = new SiteDirectory(new File(this.siteDirectory, locale.toString()), true);
325333
context.addSiteDirectory(new SiteDirectory(new File(generatedSiteDirectory, locale.toString()), false));
326334
} else {
327-
context.addSiteDirectory(new SiteDirectory(siteDirectory, true));
335+
mainSiteDirectory = new SiteDirectory(siteDirectory, true);
328336
context.addSiteDirectory(new SiteDirectory(generatedSiteDirectory, false));
329337
}
330-
338+
if (alternativeSiteSourceDirectories != null) {
339+
for (File additionalSiteSourceDirectory : alternativeSiteSourceDirectories) {
340+
mainSiteDirectory.addAlternativeSourceDirectory(additionalSiteSourceDirectory);
341+
}
342+
}
343+
context.addSiteDirectory(mainSiteDirectory);
344+
331345
if (moduleExcludes != null) {
332346
context.setModuleExcludes(moduleExcludes);
333347
}

0 commit comments

Comments
 (0)