You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kw...@apache.org on 2026/03/11 14:16:49 UTC
(maven-site-plugin) branch feature/configurablesourcedirectories created (now 14fcff2a)
This is an automated email from the ASF dual-hosted git repository.
kwin pushed a change to branch feature/configurablesourcedirectories
in repository https://gitbox.apache.org/repos/asf/maven-site-plugin.git
at 14fcff2a Allow to give alternative source directories for sites
This branch includes the following new commits:
new 14fcff2a Allow to give alternative source directories for sites
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(maven-site-plugin) 01/01: Allow to give alternative source directories for sites
Posted by kw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
kwin pushed a commit to branch feature/configurablesourcedirectories
in repository https://gitbox.apache.org/repos/asf/maven-site-plugin.git
commit 14fcff2a6fe43997e45e8f7b1ac7fe3920dd4745
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Wed Mar 11 15:16:43 2026 +0100
Allow to give alternative source directories for sites
---
pom.xml | 6 ++---
.../site/render/AbstractSiteRenderingMojo.java | 26 +++++++++++++++++-----
2 files changed, 23 insertions(+), 9 deletions(-)
diff --git a/pom.xml b/pom.xml
index 3b1e38f6..7ced54d2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@ under the License.
</parent>
<artifactId>maven-site-plugin</artifactId>
- <version>4.0.0-M17-SNAPSHOT</version>
+ <version>3.22.0-SNAPSHOT</version>
<packaging>maven-plugin</packaging>
<name>Apache Maven Site Plugin</name>
@@ -198,8 +198,8 @@ under the License.
<mavenVersion>3.6.3</mavenVersion>
<!-- for dependencies -->
<jettyVersion>9.4.57.v20241219</jettyVersion>
- <doxiaVersion>2.0.0</doxiaVersion>
- <doxiaSitetoolsVersion>2.0.0</doxiaSitetoolsVersion>
+ <doxiaVersion>2.1.0-SNAPSHOT</doxiaVersion>
+ <doxiaSitetoolsVersion>2.1.0-SNAPSHOT</doxiaSitetoolsVersion>
<wagonVersion>3.5.3</wagonVersion>
<slf4jVersion>1.7.36</slf4jVersion>
<!-- for ITs -->
diff --git a/src/main/java/org/apache/maven/plugins/site/render/AbstractSiteRenderingMojo.java b/src/main/java/org/apache/maven/plugins/site/render/AbstractSiteRenderingMojo.java
index 72270446..707f28b2 100644
--- a/src/main/java/org/apache/maven/plugins/site/render/AbstractSiteRenderingMojo.java
+++ b/src/main/java/org/apache/maven/plugins/site/render/AbstractSiteRenderingMojo.java
@@ -100,13 +100,20 @@ public abstract class AbstractSiteRenderingMojo extends AbstractSiteDescriptorMo
* build time mean).
* This directory is expected to have the same structure as <code>siteDirectory</code>
* (ie. one directory per Doxia-source-supported markup types).
- *
- * todo should we deprecate in favour of reports directly using Doxia Sink API, without this Doxia source
- * intermediate step?
+ * This is never editable.
*/
@Parameter(alias = "workingDirectory", defaultValue = "${project.build.directory}/generated-site")
protected File generatedSiteDirectory;
+ /**
+ * Optional list of source directories to be used instead of {@link #siteDirectory} for rendering edit URLs.
+ * This is only used for documents rendered from {@link #siteDirectory} but not for {@link AbstractSiteRenderingMojo#generatedSiteDirectory}.
+ * The latter are always considered non-editable!
+ * @since 3.22.0
+ */
+ @Parameter
+ protected File[] alternativeSiteSourceDirectories;
+
/**
* The current Maven session.
*/
@@ -320,14 +327,21 @@ public abstract class AbstractSiteRenderingMojo extends AbstractSiteDescriptorMo
// Generate static site
context.setRootDirectory(project.getBasedir());
+ final SiteDirectory mainSiteDirectory;
if (!locale.equals(SiteTool.DEFAULT_LOCALE)) {
- context.addSiteDirectory(new SiteDirectory(new File(siteDirectory, locale.toString()), true));
+ mainSiteDirectory = new SiteDirectory(new File(this.siteDirectory, locale.toString()), true);
context.addSiteDirectory(new SiteDirectory(new File(generatedSiteDirectory, locale.toString()), false));
} else {
- context.addSiteDirectory(new SiteDirectory(siteDirectory, true));
+ mainSiteDirectory = new SiteDirectory(siteDirectory, true);
context.addSiteDirectory(new SiteDirectory(generatedSiteDirectory, false));
}
-
+ if (alternativeSiteSourceDirectories != null) {
+ for (File additionalSiteSourceDirectory : alternativeSiteSourceDirectories) {
+ mainSiteDirectory.addAlternativeSourceDirectory(additionalSiteSourceDirectory);
+ }
+ }
+ context.addSiteDirectory(mainSiteDirectory);
+
if (moduleExcludes != null) {
context.setModuleExcludes(moduleExcludes);
}