Hi Lukas!
I have a question on this commit, as it causes our site gen to now fail.
With the following change:
> + if ( site == null )
> + {
> + throw new MojoExecutionException(
> + "Missing site information in the distribution management of
> the project " + name );
> + }
the following use case configuration encounters the above exception:
- a project parent pom has a <distributionManagement><site> element
(modules of course inherit it)
- a corporate parent pom does not have a <distributionManagement><site> element
We never run site gen for the corporate parent pom, so any
<distributionManagement><site> element added will make it work but is
unneeded/fake.
So wondering if this configuration use case was considered and the
correct answer is to add a "fake" <site> element to the corporate
parent or possibly this check for site definition needs tweaking (can
it consider the effective one?)?
On Fri, Mar 4, 2011 at 6:58 AM, <[email protected]> wrote:
> Author: ltheussl
> Date: Fri Mar 4 12:58:01 2011
> New Revision: 1077924
>
> URL: http://svn.apache.org/viewvc?rev=1077924&view=rev
> Log:
> refactor: re-use getSite() so we properly catch null values also in
> stage-deploy
>
> Modified:
>
> maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractDeployMojo.java
>
> maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java
>
> maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageDeployMojo.java
>
> Modified:
> maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractDeployMojo.java
> URL:
> http://svn.apache.org/viewvc/maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractDeployMojo.java?rev=1077924&r1=1077923&r2=1077924&view=diff
> ==============================================================================
> ---
> maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractDeployMojo.java
> (original)
> +++
> maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractDeployMojo.java
> Fri Mar 4 12:58:01 2011
> @@ -26,6 +26,8 @@ import java.util.Locale;
>
> import org.apache.maven.artifact.manager.WagonConfigurationException;
> import org.apache.maven.artifact.manager.WagonManager;
> +import org.apache.maven.model.DistributionManagement;
> +import org.apache.maven.model.Site;
> import org.apache.maven.plugin.MojoExecutionException;
> import org.apache.maven.plugin.logging.Log;
> import org.apache.maven.project.MavenProject;
> @@ -552,4 +554,43 @@ public abstract class AbstractDeployMojo
>
> return parent;
> }
> +
> + /**
> + * Extract the distributionManagment site from the given MavenProject.
> + *
> + * @param project the MavenProject. Not null.
> + *
> + * @return the project site. Not null.
> + * Also site.getUrl() and site.getId() are guaranteed to be not
> null.
> + *
> + * @throws MojoExecutionException if any of the site info is missing.
> + */
> + protected static Site getSite( final MavenProject project )
> + throws MojoExecutionException
> + {
> + final String name = project.getName() + " ("
> + + project.getGroupId() + ":" + project.getArtifactId() + ":" +
> project.getVersion() + ")";
> +
> + final DistributionManagement distributionManagement =
> project.getDistributionManagement();
> +
> + if ( distributionManagement == null )
> + {
> + throw new MojoExecutionException( "Missing distribution
> management in project " + name );
> + }
> +
> + final Site site = distributionManagement.getSite();
> +
> + if ( site == null )
> + {
> + throw new MojoExecutionException(
> + "Missing site information in the distribution management of
> the project " + name );
> + }
> +
> + if ( site.getUrl() == null || site.getId() == null )
> + {
> + throw new MojoExecutionException( "Missing site data: specify
> url and id for project " + name );
> + }
> +
> + return site;
> + }
> }
>
> Modified:
> maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java
> URL:
> http://svn.apache.org/viewvc/maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java?rev=1077924&r1=1077923&r2=1077924&view=diff
> ==============================================================================
> ---
> maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java
> (original)
> +++
> maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java
> Fri Mar 4 12:58:01 2011
> @@ -19,10 +19,8 @@ package org.apache.maven.plugins.site;
> * under the License.
> */
>
> -import org.apache.maven.model.DistributionManagement;
> import org.apache.maven.model.Site;
> import org.apache.maven.plugin.MojoExecutionException;
> -import org.apache.maven.project.MavenProject;
>
> /**
> * Deploys the generated site using <code>scp</code> or <code>file</code>
> @@ -68,30 +66,4 @@ public class SiteDeployMojo
>
> return site.getUrl();
> }
> -
> - private static Site getSite( final MavenProject project )
> - throws MojoExecutionException
> - {
> - final DistributionManagement distributionManagement =
> project.getDistributionManagement();
> -
> - if ( distributionManagement == null )
> - {
> - throw new MojoExecutionException( "Missing distribution
> management information in the project." );
> - }
> -
> - final Site site = distributionManagement.getSite();
> -
> - if ( site == null )
> - {
> - throw new MojoExecutionException(
> - "Missing site information in the distribution management
> element in the project." );
> - }
> -
> - if ( site.getUrl() == null || site.getId() == null )
> - {
> - throw new MojoExecutionException( "Missing site data for deploy:
> specify url and id!" );
> - }
> -
> - return site;
> - }
> }
>
> Modified:
> maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageDeployMojo.java
> URL:
> http://svn.apache.org/viewvc/maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageDeployMojo.java?rev=1077924&r1=1077923&r2=1077924&view=diff
> ==============================================================================
> ---
> maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageDeployMojo.java
> (original)
> +++
> maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageDeployMojo.java
> Fri Mar 4 12:58:01 2011
> @@ -93,6 +93,7 @@ public class SiteStageDeployMojo
> * @return the site URL for staging
> */
> private String getStagingSiteURL( String usersStagingSiteURL )
> + throws MojoExecutionException
> {
> String topLevelURL = null;
>
> @@ -106,7 +107,7 @@ public class SiteStageDeployMojo
> {
> // The user didn't specify a URL, use the top level target dir
> topLevelURL =
> - getTopLevelParent( project
> ).getDistributionManagement().getSite().getUrl() + "/" +
> DEFAULT_STAGING_DIRECTORY;
> + getSite( getTopLevelParent( project ) ).getUrl() + "/" +
> DEFAULT_STAGING_DIRECTORY;
> getLog().debug( "stagingSiteURL NOT specified, using the top
> level project: " + topLevelURL );
> }
>
>
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]