resolve distributionManagementSiteUrl based on module or on artifactId
git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@1520762 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/pom.xml b/pom.xml
index 6969bb2..7e37aae 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,6 +55,11 @@
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
+ <artifactId>maven-core</artifactId>
+ <version>${mavenVersion}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
<version>${mavenVersion}</version>
</dependency>
diff --git a/src/main/java/org/apache/maven/shared/project/utils/SiteUtils.java b/src/main/java/org/apache/maven/shared/project/utils/SiteUtils.java
index 3df83a8..e0a47bf 100644
--- a/src/main/java/org/apache/maven/shared/project/utils/SiteUtils.java
+++ b/src/main/java/org/apache/maven/shared/project/utils/SiteUtils.java
@@ -1,5 +1,8 @@
package org.apache.maven.shared.project.utils;
+import java.io.File;
+import java.util.Map;
+
import org.apache.maven.model.Model;
import org.apache.maven.project.MavenProject;
@@ -28,9 +31,20 @@
private SiteUtils()
{
}
-
+
public static String resolveDistributionManagementSiteUrl( MavenProject project )
{
+ return resolveDistributionManagementSiteUrl( project, true );
+ }
+
+ /**
+ *
+ * @param project
+ * @param useModuleName use the moduleName instead of the artifactId
+ * @return
+ */
+ public static String resolveDistributionManagementSiteUrl( MavenProject project, boolean useModuleName )
+ {
String siteUrl = getDistributionManagementSiteUrl( project.getModel() );
if ( siteUrl == null )
@@ -39,8 +53,24 @@
siteUrl = String.valueOf( getDistributionManagementSiteUrl( project ) );
if ( !ProjectUtils.isRootProject( project ) )
{
- // assuming that folder matches the moduleName
- siteUrl += '/' + project.getFile().getParentFile().getName();
+ if( useModuleName )
+ {
+ Map<String, String> modules = ProjectUtils.getAllModules( project.getParent() );
+
+ for( String module : modules.keySet() )
+ {
+ if( new File( project.getParent().getBasedir(), module ).equals( project.getFile() ) )
+ {
+ return siteUrl + '/' + module;
+ }
+ }
+ // project is not a module of its parent, so use project's directoryname
+ siteUrl += '/' + project.getFile().getParentFile().getName();
+ }
+ else
+ {
+ siteUrl += '/' + project.getArtifactId();
+ }
}
}
return siteUrl;