Class AbstractDeployMojo

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private boolean chmod
      Whether to run the "chmod" command on the remote site after the deploy.
      private java.lang.String chmodMode
      The mode used by the "chmod" command.
      private java.lang.String chmodOptions
      The options used by the "chmod" command.
      private org.codehaus.plexus.PlexusContainer container  
      private org.apache.maven.model.Site deploySite  
      private java.io.File inputDirectory
      Directory containing the generated project sites and report distributions.
      protected org.apache.maven.execution.MavenSession mavenSession  
      private org.apache.maven.settings.Settings settings
      The current user system settings for use in Maven.
      (package private) org.apache.maven.settings.crypto.SettingsDecrypter settingsDecrypter  
      private boolean skipDeploy
      Set this to 'true' to skip site deployment.
      private java.lang.String topDistributionManagementSiteUrl  
      • Fields inherited from interface org.apache.maven.plugin.Mojo

        ROLE
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected static java.lang.String appendSlash​(java.lang.String url)
      Make sure the given URL ends with a slash.
      private static void chmod​(org.apache.maven.wagon.Wagon wagon, org.apache.maven.wagon.repository.Repository repository, java.lang.String chmodOptions, java.lang.String chmodMode)  
      private void deploy​(java.io.File directory, org.apache.maven.wagon.repository.Repository repository)  
      private void deployTo​(org.apache.maven.wagon.repository.Repository repository)
      Use wagon to deploy the generated site to a given repository.
      protected abstract org.apache.maven.model.Site determineDeploySite()  
      protected abstract java.lang.String determineTopDistributionManagementSiteUrl()  
      void execute()
      org.apache.maven.wagon.authentication.AuthenticationInfo getAuthenticationInfo​(java.lang.String id)  
      protected java.lang.String getDeployModuleDirectory()
      Find the relative path between the distribution URLs of the top site and the current project.
      protected org.apache.maven.model.Site getDeploySite()
      Get the site used for deployment, with its id to look up credential settings and the target URL for the deploy.
      private static java.lang.String getFullName​(org.apache.maven.project.MavenProject project)  
      private org.apache.maven.wagon.proxy.ProxyInfo getProxy​(org.apache.maven.wagon.repository.Repository repository, org.apache.maven.settings.crypto.SettingsDecrypter settingsDecrypter)
      Get proxy information.
      protected static org.apache.maven.model.Site getSite​(org.apache.maven.project.MavenProject project)
      Extract the distributionManagement site from the given MavenProject.
      protected java.lang.String getTopDistributionManagementSiteUrl()
      Get the top distribution management site url, used for module relative path calculations.
      protected org.apache.maven.project.MavenProject getTopLevelProject​(org.apache.maven.project.MavenProject project)
      Extract the distributionManagement site of the top level parent of the given MavenProject.
      private org.apache.maven.wagon.Wagon getWagon​(org.apache.maven.wagon.repository.Repository repository)  
      protected abstract boolean isDeploy()
      Detect if the mojo is staging or deploying.
      private void push​(java.io.File inputDirectory, org.apache.maven.wagon.repository.Repository repository, org.apache.maven.wagon.Wagon wagon, org.apache.maven.wagon.proxy.ProxyInfo proxyInfo, java.util.List<java.util.Locale> localesList, java.lang.String relativeDir)  
      • Methods inherited from class org.apache.maven.plugin.AbstractMojo

        getLog, getPluginContext, setLog, setPluginContext
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • inputDirectory

        @Parameter(alias="outputDirectory",
                   defaultValue="${project.reporting.outputDirectory}",
                   required=true)
        private java.io.File inputDirectory
        Directory containing the generated project sites and report distributions.
        Since:
        2.3
      • chmod

        @Parameter(property="maven.site.chmod",
                   defaultValue="true")
        private boolean chmod
        Whether to run the "chmod" command on the remote site after the deploy. Defaults to "true".
        Since:
        2.1
      • chmodMode

        @Parameter(property="maven.site.chmod.mode",
                   defaultValue="g+w,a+rX")
        private java.lang.String chmodMode
        The mode used by the "chmod" command. Only used if chmod = true. Defaults to "g+w,a+rX".
        Since:
        2.1
      • chmodOptions

        @Parameter(property="maven.site.chmod.options",
                   defaultValue="-Rf")
        private java.lang.String chmodOptions
        The options used by the "chmod" command. Only used if chmod = true. Defaults to "-Rf".
        Since:
        2.1
      • skipDeploy

        @Parameter(property="maven.site.deploy.skip",
                   defaultValue="false")
        private boolean skipDeploy
        Set this to 'true' to skip site deployment.
        Since:
        3.0
      • settings

        @Parameter(defaultValue="${settings}",
                   readonly=true)
        private org.apache.maven.settings.Settings settings
        The current user system settings for use in Maven.
      • mavenSession

        @Parameter(defaultValue="${session}",
                   readonly=true)
        protected org.apache.maven.execution.MavenSession mavenSession
        Since:
        3.0-beta-2
      • topDistributionManagementSiteUrl

        private java.lang.String topDistributionManagementSiteUrl
      • deploySite

        private org.apache.maven.model.Site deploySite
      • container

        @Component
        private org.codehaus.plexus.PlexusContainer container
      • settingsDecrypter

        @Component
        org.apache.maven.settings.crypto.SettingsDecrypter settingsDecrypter
    • Constructor Detail

      • AbstractDeployMojo

        public AbstractDeployMojo()
    • Method Detail

      • execute

        public void execute()
                     throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • appendSlash

        protected static java.lang.String appendSlash​(java.lang.String url)
        Make sure the given URL ends with a slash.
        Parameters:
        url - a String
        Returns:
        if url already ends with '/' it is returned unchanged. Otherwise a '/' character is appended.
      • isDeploy

        protected abstract boolean isDeploy()
        Detect if the mojo is staging or deploying.
        Returns:
        true if the mojo is for deploy and not staging (local or deploy)
      • getTopDistributionManagementSiteUrl

        protected java.lang.String getTopDistributionManagementSiteUrl()
                                                                throws org.apache.maven.plugin.MojoExecutionException
        Get the top distribution management site url, used for module relative path calculations. This should be a top-level URL, ie above modules and locale sub-directories. Each deploy mojo can tweak algorithm to determine this top site by implementing determineTopDistributionManagementSiteUrl().
        Returns:
        the site for deployment
        Throws:
        org.apache.maven.plugin.MojoExecutionException - in case of issue
        See Also:
        determineTopDistributionManagementSiteUrl()
      • determineTopDistributionManagementSiteUrl

        protected abstract java.lang.String determineTopDistributionManagementSiteUrl()
                                                                               throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • getDeploySite

        protected org.apache.maven.model.Site getDeploySite()
                                                     throws org.apache.maven.plugin.MojoExecutionException
        Get the site used for deployment, with its id to look up credential settings and the target URL for the deploy. This should be a top-level URL, ie above modules and locale sub-directories. Each deploy mojo can tweak algorithm to determine this deploy site by implementing determineDeploySite().
        Returns:
        the site for deployment
        Throws:
        org.apache.maven.plugin.MojoExecutionException - in case of issue
        See Also:
        determineDeploySite()
      • determineDeploySite

        protected abstract org.apache.maven.model.Site determineDeploySite()
                                                                    throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • getDeployModuleDirectory

        protected java.lang.String getDeployModuleDirectory()
                                                     throws org.apache.maven.plugin.MojoExecutionException
        Find the relative path between the distribution URLs of the top site and the current project.
        Returns:
        the relative path or "./" if the two URLs are the same.
        Throws:
        org.apache.maven.plugin.MojoExecutionException - in case of issue
      • deployTo

        private void deployTo​(org.apache.maven.wagon.repository.Repository repository)
                       throws org.apache.maven.plugin.MojoExecutionException
        Use wagon to deploy the generated site to a given repository.
        Parameters:
        repository - the repository to deploy to. This needs to contain a valid, non-null id to look up credentials for the deploy, and a valid, non-null scm url to deploy to.
        Throws:
        org.apache.maven.plugin.MojoExecutionException - if the deploy fails.
      • deploy

        private void deploy​(java.io.File directory,
                            org.apache.maven.wagon.repository.Repository repository)
                     throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • getWagon

        private org.apache.maven.wagon.Wagon getWagon​(org.apache.maven.wagon.repository.Repository repository)
                                               throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • getAuthenticationInfo

        public org.apache.maven.wagon.authentication.AuthenticationInfo getAuthenticationInfo​(java.lang.String id)
      • push

        private void push​(java.io.File inputDirectory,
                          org.apache.maven.wagon.repository.Repository repository,
                          org.apache.maven.wagon.Wagon wagon,
                          org.apache.maven.wagon.proxy.ProxyInfo proxyInfo,
                          java.util.List<java.util.Locale> localesList,
                          java.lang.String relativeDir)
                   throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • chmod

        private static void chmod​(org.apache.maven.wagon.Wagon wagon,
                                  org.apache.maven.wagon.repository.Repository repository,
                                  java.lang.String chmodOptions,
                                  java.lang.String chmodMode)
                           throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • getProxy

        private org.apache.maven.wagon.proxy.ProxyInfo getProxy​(org.apache.maven.wagon.repository.Repository repository,
                                                                org.apache.maven.settings.crypto.SettingsDecrypter settingsDecrypter)
        Get proxy information.
        Parameters:
        repository - the Repository to extract the ProxyInfo from
        settingsDecrypter - settings password decrypter
        Returns:
        a ProxyInfo object instantiated or null if no matching proxy is found.
      • getSite

        protected static org.apache.maven.model.Site getSite​(org.apache.maven.project.MavenProject project)
                                                      throws org.apache.maven.plugin.MojoExecutionException
        Extract the distributionManagement site from the given MavenProject.
        Parameters:
        project - the MavenProject. Not null.
        Returns:
        the project site. Not null. Also site.getUrl() and site.getId() are guaranteed to be not null.
        Throws:
        org.apache.maven.plugin.MojoExecutionException - if any of the site info is missing.
      • getFullName

        private static java.lang.String getFullName​(org.apache.maven.project.MavenProject project)
      • getTopLevelProject

        protected org.apache.maven.project.MavenProject getTopLevelProject​(org.apache.maven.project.MavenProject project)
                                                                    throws org.apache.maven.plugin.MojoExecutionException
        Extract the distributionManagement site of the top level parent of the given MavenProject. This climbs up the project hierarchy and returns the site of the last project for which getSite(org.apache.maven.project.MavenProject) returns a site that resides in the same site. Notice that it doesn't take into account if the parent is in the reactor or not.
        Parameters:
        project - the MavenProject. Not null.
        Returns:
        the top level site. Not null. Also site.getUrl() and site.getId() are guaranteed to be not null.
        Throws:
        org.apache.maven.plugin.MojoExecutionException - if no site info is found in the tree.
        See Also:
        URIPathDescriptor.sameSite(java.net.URI)