How do I generate a StatSCM report for a site?
Author: Deron Eriksson
Description: This maven tutorial describes how to generate a StatSCM report for a site using the StatSCM Maven Plugin.
Tutorial created using: Windows Vista || JDK 1.6.0_04 || Eclipse Web Tools Platform 2.0.1 (Eclipse 3.3.1)


Page:    1 2 3 >

The StatSCM MavenSW Plugin is one hell of a mavenSW plugin. The most common response from people when I show them this plugin is usually "Wow". It generates awesome graphs and data about a project in a Source Control Management system (CVS and Subversion).

To use this plugin, add a reference to stat-scm in the reporting section of your project's pom.xml file. In addition, you need to have an scm section set up in your pom.xml so that the plugin can talk to your SCM system.

section of pom.xml

	<scm>
		<connection>scm:cvs:pserver:${derbizz.cvs.username}:${derbizz.cvs.password}@192.168.1.10:/cvsrepo:${artifactId}</connection>
		<developerConnection>scm:cvs:pserver:${derbizz.cvs.username}:${derbizz.cvs.password}@192.168.1.10:/cvsrepo:${artifactId}</developerConnection>
		<url>http://192.168.1.10/cvsrepo/${artifactId}</url>
	</scm>
	<reporting>
		<plugins>
			<plugin>
				<groupId>net.sf</groupId>
				<artifactId>stat-scm</artifactId>
			</plugin>
		</plugins>
	</reporting>

My project's complete pom.xml file is shown here. It includes some code to deploy to my ApacheSW server using webdav.

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.maventest</groupId>
	<artifactId>aproject</artifactId>
	<packaging>jar</packaging>
	<version>1.0-SNAPSHOT</version>
	<name>aproject</name>
	<url>http://maven.apache.org</url>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
	<build>
		<extensions>
			<!-- start - for deploying using webdav -->
			<extension>
				<groupId>org.apache.maven.wagon</groupId>
				<artifactId>wagon-webdav</artifactId>
				<version>1.0-beta-2</version>
			</extension>
			<!-- end - for deploying using webdav -->
		</extensions>
	</build>
	<distributionManagement>
		<!-- start - location where site is deployed - username/password for site.deployments in server.xml -->
		<site>
			<id>site.deployments</id>
			<name>Site deployments</name>
			<url>dav:http://192.168.1.7/sites/${artifactId}/</url>
		</site>
		<!-- end - location where site is deployed - username/password for site.deployments in server.xml -->
	</distributionManagement>
	<scm>
		<connection>scm:cvs:pserver:${derbizz.cvs.username}:${derbizz.cvs.password}@192.168.1.10:/cvsrepo:${artifactId}</connection>
		<developerConnection>scm:cvs:pserver:${derbizz.cvs.username}:${derbizz.cvs.password}@192.168.1.10:/cvsrepo:${artifactId}</developerConnection>
		<url>http://192.168.1.10/cvsrepo/${artifactId}</url>
	</scm>
	<reporting>
		<plugins>
			<plugin>
				<groupId>net.sf</groupId>
				<artifactId>stat-scm</artifactId>
			</plugin>
		</plugins>
	</reporting>
</project>

To build the site documentation but not deploy it, we can do:

mvn clean site

However, I'd like to build and deploy the site, so I'll do the following:

mvn clean site-deploy

The console output from 'mvn clean site-deploy' is shown here.

Console output for 'mvn clean site-deploy'

[INFO] Scanning for projects...
WAGON_VERSION: 1.0-beta-2
[INFO] ------------------------------------------------------------------------
[INFO] Building aproject
[INFO]    task-segment: [clean, site-deploy]
[INFO] ------------------------------------------------------------------------
[INFO] [clean:clean]
[INFO] Deleting directory C:\dev\workspace\aproject\target
[INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.
[INFO] Setting property: velocimacro.messages.on => 'false'.
[INFO] Setting property: resource.loader => 'classpath'.
[INFO] Setting property: resource.manager.logwhenfound => 'false'.
[INFO] [site:site]
[INFO] Generating "StatSCM" report.
[INFO] StatSCM Generating Source Code Management  Metrics.
[INFO] Configuring StatXXX
[INFO] SCM Connection Type :cvs
[INFO] Output Directory    :C:\dev\workspace\aproject\target\generated-site\xdoc\statscm\
[INFO] scm log > C:\dev\workspace\aproject\target\generated-site\xdoc\statscm\scm.log
[WARNING] Empty password used - try 'cvs login' with a real password
[WARNING] cvs server: Logging .
[WARNING] cvs server: Logging src
[WARNING] cvs server: Logging src/main
[WARNING] cvs server: Logging src/main/java
[WARNING] cvs server: Logging src/main/java/com
[WARNING] cvs server: Logging src/main/java/com/maventest
[WARNING] cvs server: Logging src/test
[WARNING] cvs server: Logging src/test/java
[WARNING] cvs server: Logging src/test/java/com
[WARNING] cvs server: Logging src/test/java/com/maventest
[INFO] C:\dev\workspace\aproject\target\generated-site\xdoc\statscm\scm.log EOF.
[INFO] scm log ...; exitValue: 0
[INFO] Generating "Continuous Integration" report.
[INFO] Generating "Dependencies" report.
[INFO] Generating "Issue Tracking" report.
[INFO] Generating "Project License" report.
[INFO] Generating "Mailing Lists" report.
[INFO] Generating "About" report.
[INFO] Generating "Project Summary" report.
[INFO] Generating "Source Repository" report.
[INFO] Generating "Project Team" report.
[INFO] [site:deploy]
http://192.168.1.7/sites/aproject/ - Session: Opened  

... REMOVED FOR CLARITY ...

http://192.168.1.7/sites/aproject/ - Session: Disconnecting  
http://192.168.1.7/sites/aproject/ - Session: Disconnected
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 20 seconds
[INFO] Finished at: Sat Feb 23 02:57:11 PST 2008
[INFO] Final Memory: 14M/29M
[INFO] ------------------------------------------------------------------------

(Continued on page 2)

Page:    1 2 3 >


Related Tutorials: