You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2013/04/29 22:55:15 UTC
svn commit: r1477336 - in /webservices/site/maven/src/site: apt/dev.apt
site.xml
Author: veithen
Date: Mon Apr 29 20:55:14 2013
New Revision: 1477336
URL: http://svn.apache.org/r1477336
Log:
Added some documentation about how to build the site (including sites for subprojects).
Added:
webservices/site/maven/src/site/apt/dev.apt
Modified:
webservices/site/maven/src/site/site.xml
Added: webservices/site/maven/src/site/apt/dev.apt
URL: http://svn.apache.org/viewvc/webservices/site/maven/src/site/apt/dev.apt?rev=1477336&view=auto
==============================================================================
--- webservices/site/maven/src/site/apt/dev.apt (added)
+++ webservices/site/maven/src/site/apt/dev.apt Mon Apr 29 20:55:14 2013
@@ -0,0 +1,110 @@
+~~ Licensed to the Apache Software Foundation (ASF) under one
+~~ or more contributor license agreements. See the NOTICE file
+~~ distributed with this work for additional information
+~~ regarding copyright ownership. The ASF licenses this file
+~~ to you under the Apache License, Version 2.0 (the
+~~ "License"); you may not use this file except in compliance
+~~ with the License. You may obtain a copy of the License at
+~~
+~~ http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~ Unless required by applicable law or agreed to in writing,
+~~ software distributed under the License is distributed on an
+~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+~~ KIND, either express or implied. See the License for the
+~~ specific language governing permissions and limitations
+~~ under the License.
+
+ ---------------------
+ Developer resources
+ ---------------------
+
+How the Web site is built - overview
+
+ The Web services project uses the following approach to build a Web site with a consistent
+ look and feel across multiple subprojects:
+
+ * The Web services project defines its own parent POM that extends the <<<org.apache:apache>>>
+ super POM. The Maven coordinates of this parent POM are <<<org.apache.ws:ws-parent>>>
+ and the sources are located here:
+ {{{https://svn.apache.org/repos/asf/webservices/parent/}https://svn.apache.org/repos/asf/webservices/parent/}}.
+ This parent POM is expected to be used by all subprojects and is responsible for several things:
+
+ * It deploys a site descriptor with reasonable defaults for the site configuration.
+ This configuration is inherited by all subprojects that use the parent POM.
+ It ensures a minimum of consistency between projects and includes the following settings:
+
+ * A Maven skin that is graphically a bit more sophisticated
+ than the default skin (which is really ugly).
+
+ * A side bar menu with links required by the
+ {{{http://www.apache.org/foundation/marks/pmcs}Apache Project Branding Requirements}}.
+
+ * Breadcrumbs that ensure consistent navigation between the root site and the
+ sites for the subprojects.
+
+ * It contains the necessary configurations to enable usage of the
+ {{{http://maven.apache.org/plugins/maven-scm-publish-plugin/}maven-scm-publish-plugin}}
+ to deploy sites directly to the svnpubsub area in SVN.
+
+ * It defines defaults for certain plugins used by the site generation process (such as maven-javadoc-plugin).
+ The goal is to reduce the number of unnecessary file changes that occur when regenerating the site. This should avoid mass
+ changes when committing the new version of the site.
+
+ * It defines default Maven metadata that applies to all subprojects, e.g. the mailing lists.
+
+ * The root site is generated using a Maven project as well. It is located here:
+ {{{https://svn.apache.org/repos/asf/webservices/site/maven/}https://svn.apache.org/repos/asf/webservices/site/maven/}}.
+ The project is configured with maven-scm-publish-plugin so that the root site can be published
+ with a few commands (more on this below).
+
+ Obviously, the parent POM requires a separate release, but since it is set up as a Maven
+ project that follows the standard Maven release procedure, that is not
+ so much of an issue.
+ On the other hand, republishing the root site doesn't require a release, and the
+ project version is set to a fixed value (0).
+
+Requirements for subprojects
+
+ The Maven setup of each subproject should meet the following minimum requirements:
+
+ * The project must inherit the WS parent POM (<<<org.apache.ws:ws-parent>>>). During the release
+ process, the version of the parent POM should be updated to the latest version.
+
+ * The root POM of the project must have a <<<site>>> entry in the <<<distributionManagement>>> section
+ that points to the right location in the svnpubsub area: <<<scm:svn:https://svn.apache.org/repos/asf/webservices/website/...>>>.
+
+ * If the project folder in the svnpubsub area contains files or directories that are not generated by Maven,
+ then the root POM must contain a configuration for the maven-scm-publish-plugin that declares
+ them using the <<<ignorePathsToDelete>>> property (See the POM of the root site for an example).
+
+ * The <<<site.xml>>> file for the project must be configured appropriately. In most cases, it should only
+ contain <<<menu>>> entries and inherit everything else from the site descriptor of the WS parent POM.
+ It may also reconfigure the left banner to replace it with the project's logo.
+
+Republishing the site for a subproject
+
+ To republish the Maven site of a subproject, start by executing the following commands:
+
+--------------------------------------------------------------------
+mvn clean site
+mvn site:stage scm-publish:publish-scm -Dscmpublish.skipCheckin=true
+--------------------------------------------------------------------
+
+ Then go to the <<<target/scmpublish-checkout>>> directory and check the changes. In particular, you should check
+ that no files or directories have been unexpectedly marked for deletion. I you are satisfied with the result,
+ commit them using <<<svn commit>>>. That's it!
+
+ If you know what you are doing, you may omit the <<<scmpublish.skipCheckin>>> property. In this case,
+ <<<publish-scm>>> will commit the changes immediately.
+
+ Note that the procedure described above is designed to work both with single module and multi-module Maven
+ builds. Actually, for single module projects, a simpler command could be used.
+
+Republishing the root site
+
+ Republishing the root site requires the same sequence of commands as for a subproject. Note that the
+ POM configures the <<<ignorePathsToDelete>>> property of the maven-scm-publish-plugin to avoid
+ deleting directories belonging to subprojects, as well as files such as <<<.htaccess>>> and <<<robots.txt>>>
+ which are not managed by the Maven project. You should therefore always use <<<scmpublish.skipCheckin=true>>>
+ and carefully review the changes before committing them.
Modified: webservices/site/maven/src/site/site.xml
URL: http://svn.apache.org/viewvc/webservices/site/maven/src/site/site.xml?rev=1477336&r1=1477335&r2=1477336&view=diff
==============================================================================
--- webservices/site/maven/src/site/site.xml (original)
+++ webservices/site/maven/src/site/site.xml Mon Apr 29 20:55:14 2013
@@ -48,6 +48,7 @@
<menu name="Resources">
<item name="Wiki" href="http://wiki.apache.org/ws/"/>
<item name="IRC" href="irc.html"/>
+ <item name="Developer Resources" href="dev.html"/>
</menu>
</body>
</project>