Apache Commons logo

Introduction

Due to svnpubsub migration, the procedure to publish sites has been changed. Commons sites use a solution based on both Apache CMS (for the main site) and svnpubsub publication based on the maven-scm-publish-plugin for the component sites.

Main site

The Apache CMS UI can be used to modify and publish main web site: https://cms.apache.org/commons/. More documentation is available here

The main site content is now located in svn: https://svn.apache.org/repos/asf/commons/cms-site/trunk/ .
You can test your changes locally using:

mvn clean site

After you commit, and buildbot handles the site generation, you can test your changes, and any others in the pipeline, at http://commons.staging.apache.org/. Once satisfied, you can publish via the CMS site. Note that the staging site is shared, so if any other changes have been made to the site by other developers, these will also be published.

Components

Components use the maven-scm-publish-plugin. The maven generated site is checked in to:

  • proper: https://svn.apache.org/repos/infra/websites/production/commons/content/proper/
  • sandbox: https://svn.apache.org/repos/infra/websites/production/commons/content/sandbox/
  • dormant: https://svn.apache.org/repos/infra/websites/production/commons/content/dormant/

Components must use parent 28 (sandbox parent: 10) or later.

Maven will create a working copy of the site svn directory (~/commons-sites/ by default) publish your site to it and commit the changes. It will not prompt you for your svn password so the commit will fail unless subversion is configured to store your password. If it fails, you can commit the changes manually.

In order to publish the site of a single module project use

      mvn clean site-deploy
    

and for a multi modules project use

      mvn clean site site:stage scm-publish:publish-scm
    

Configuration

Default deployment targets are:

  • propers: https://svn.apache.org/repos/infra/websites/production/commons/content/proper/${project.artifactId}
  • sandbox: https://svn.apache.org/repos/infra/websites/production/commons/content/sandbox/${project.artifactId}
  • dormant: https://svn.apache.org/repos/infra/websites/production/commons/content/dormant/${project.artifactId}

The maven-scm-publish-plugin will delete any content not generated by the Maven site plugin. To avoid deletion of previous apis javadocs or other static content, the pom needs some configuration:

          
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-scm-publish-plugin</artifactId>
            <configuration>
              <ignorePathsToDelete>
                <ignorePathToDelete>javadocs</ignorePathToDelete>
                <!-- other paths to ignore -->
              </ignorePathsToDelete>
            </configuration>
          </plugin>
          
        

All declared paths won't be deleted from svn but rather have to be imported manually.