Class AbstractDeployMojo
- java.lang.Object
-
- org.apache.maven.plugin.AbstractMojo
-
- org.apache.maven.plugins.site.AbstractSiteMojo
-
- org.apache.maven.plugins.site.deploy.AbstractDeployMojo
-
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled
,org.apache.maven.plugin.Mojo
- Direct Known Subclasses:
AbstractStagingMojo
,SiteDeployMojo
public abstract class AbstractDeployMojo extends AbstractSiteMojo
Abstract base class for deploy mojos. Since 2.3 this includesSiteStageMojo
andSiteStageDeployMojo
.- Since:
- 2.3
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
AbstractDeployMojo.URIEncoder
-
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 class org.apache.maven.plugins.site.AbstractSiteMojo
i18n, project, siteTool, skip
-
-
Constructor Summary
Constructors Constructor Description AbstractDeployMojo()
-
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.plugins.site.AbstractSiteMojo
getLocales
-
-
-
-
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
-
-
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-nullid
to look up credentials for the deploy, and a valid, non-nullscm 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 fromsettingsDecrypter
- 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 whichgetSite(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. Notnull
.- Returns:
- the top level site. Not
null
. Also site.getUrl() and site.getId() are guaranteed to be notnull
. - Throws:
org.apache.maven.plugin.MojoExecutionException
- if no site info is found in the tree.- See Also:
URIPathDescriptor.sameSite(java.net.URI)
-
-