Apache Maven SCM Publish Plugin – Usage
source link: https://maven.apache.org/plugins/maven-scm-publish-plugin/usage.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Usage
The maven-scm-publish-plugin submits modified content to SCM, sites being the most classical case.
The standard use for sites is:
- mvn -Preporting site site:stage
- mvn scm-publish:publish-scm
which will work both for multi-and mono-modules sites.
Usage With Lifecycle (beta)
There are two ways you can set this up for site in your POM.
Use the Custom Lifecycle
Unfortunately, a Maven plugin can't define a top-level lifecycle like 'site'. However, it can come close. The plugin includes the scmpublish goal. This goal does nothing except fork a custom scmpublish lifecycle, consisting of the following phases:
- scmpublish-prepare
- scmpublish-pre-site
- scmpublish-site
- scmpublish-post-site
- scmpublish-publish
(Again unfortunately, Maven does not allow a custom lifecycle to share phases with some other lifecycle.)
With a little configuration in your POM,
- mvn scm-publish:scmpublish
will do all the work.
- <build>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-scm-publish-plugin</artifactId>
- <version>3.0.0</version>
- <extensions>true</extensions>
- <configuration>
- <!-- svn location for publication -->
- <pubScmUrl>scm:svn:https://svn.apache.org/repos/asf/maven/sandbox/bimargulies/site-test-003</pubScmUrl>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- </build>
Notice: this is actually not working, the 003-lifecycle IT has been disabled.
Using the Site Lifecycle
The alternative is to attach the necessary activities to the site lifecycle and deactivate maven-site-plugin's site deploy goal. This requires more XML in the POM, but it may be easier to use if you already customize the site lifecycle for other reasons.
- <distributionManagement>
- <site>
- <id>site</id>
- <url>scm:svn:https://svn.apache.org/repos/asf/maven/sandbox/bimargulies/site-test</url>
- </site>
- </distributionManagement>
- <build>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-site-plugin</artifactId>
- <configuration>
- <skipDeploy>true</skipDeploy>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-site-plugin</artifactId>
- <executions>
- <execution>
- <id>stage-for-scm-publish</id>
- <phase>post-site</phase>
- <goals>
- <goal>stage</goal>
- </goals>
- <configuration>
- <skipDeploy>false</skipDeploy><!-- MSITE-652: configuration won't be necessary with m-site-p 3.2 -->
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-scm-publish-plugin</artifactId>
- <version>3.0.0</version>
- <executions>
- <execution>
- <id>scm-publish</id>
- <phase>site-deploy</phase>
- <goals>
- <goal>publish-scm</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK