プロジェクトサイト生成

| # Comments | 1 Trackback
Maven2のもう1つの有用な機能として、プロジェクトサイト生成機能があります。

pom.xmlファイルに書かれた各種情報を元に、プロジェクト情報をまとめたサイトを自動生成してくれます。
完全に自動化できる情報は限られていますが、その他の情報に関してもプロジェクト内にファイルを置くことで同じレイアウトのページとして出力ができます。
Maven2のサイトもサイト生成機能を利用して作られています。

それでは基本的な機能を見ていきます。

siteフェーズ

プロジェクトサイトを生成するために必要な設定は特に必要ありません。

pom.xmlファイル

<project>
	<modelVersion>4.0.0</modelVersion>
	<groupId>st.happy_camper.sample</groupId>
	<artifactId>sample-jar</artifactId>
	<version>0.0.1-SNAPSHOT</version>
</project>

を準備し、

$ mvn site

で、target/siteに出力されます。

基本情報の設定

基本情報の出力は、maven-project-info-reports-pluginが行っています。
pom.xmlファイルへの設定がない場合には、このプラグインが出力できるレポートをすべて出力します。

出力を抑制したい場合には以下のような設定を行い、必要のない項目の<report>タグを削除/コメントアウトしていきます。

<project>

	・・・・

	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-project-info-reports-plugin</artifactId>
				<reportSets>
					<reportSet>
						<reports>
							<report>cim</report>
							<report>dependencies</report>
							<report>dependency-convergence</report>
							<report>dependency-management</report>
							<report>index</report>
							<report>issue-tracking</report>
							<report>license</report>
							<report>mailing-list</report>
							<report>plugin-management</report>
							<report>project-team</report>
							<report>plugins</report>
							<report>scm</report>
							<report>summary</report>
						</reports>
					</reportSet>
				</reportSets>
			</plugin>

	・・・・

		</plugins>
	</reporting>

	・・・・

</project>

各項目で表示される情報には、pom.xmlの設定を利用しているものもあります。
それぞれについて、関連する設定を見てみます。

cim

Continuous Integeration System (継続的インテグレーションシステム : ContnuumHudsonなど) についてのレポート。

pom.xml

<project>

	・・・・

	<ciManagement>
		<system>continuum</system>
		<url>http://contnuum/</url>
	</ciManagement>

	・・・・

</project>

dependencies / dependency-convergence / dependency-management

依存ライブラリについてのレポート。

pom.xml

<project>

	・・・・

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.5</version>
			<scope>test</scope>
		</dependency>

	・・・・

	</dependencies>

	・・・・

</project>

issue-tracking

Issue Tracking System (課題追跡システム : Bugzillatracなど) についてのレポート。

pom.xml

<project>

	・・・・

	<issueManagement>
		<system>trac</system>
		<url>http://trac/</url>
	</issueManagement>

	・・・・

</project>

license

成果物のライセンスについてのレポート。

pom.xml

<project>

	・・・・

	<licenses>
		<license>
			<name>Apache License, Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
			<distribution>repo</distribution>
		</license>
	</licenses>

	・・・・

</project>

mailing-list

開発者向けやユーザー向けのメーリングリストについてのレポート。

pom.xml

<project>

	・・・・

	<mailingLists>
		<mailingList>
			<name>user-ml</name>
			<subscribe>http://example.org/user-ml/subscribe/</subscribe>
			<unsubscribe>http://example.org/user-ml/unsubscribe/</unsubscribe>
			<post>user-ml@example.org</post>
			<archive>http://example.org/user-ml/archive/</archive>
		</mailingList>

	・・・・

	</mailingLists>

	・・・・

</project>

project-team

プロジェクトチームについてのレポート。
contributorは、直接開発を行っているわけではないけど、アドバイスや不具合報告などによって貢献している人に関する情報です。

pom.xml

<project>

	・・・・

	<developers>
		<developer>
			<id>ueshin</id>
			<name>Takuya Ueshin</name>
			<email>ueshin@happy-camper.st</email>
			<url>http://ueshin.happy-camper.st/</url>
			<organization>Happy-Camper Street</organization>
			<timezone>+9</timezone>
		</developer>

	・・・・

	</developers>
	<contributors>
		<contributor>
			<id>ueshin</id>
			<name>Takuya Ueshin</name>
			<email>ueshin@happy-camper.st</email>
			<url>http://ueshin.happy-camper.st/</url>
			<organization>Happy-Camper Street</organization>
			<timezone>+9</timezone>
		</contributor>

	・・・・

	</contributors>

	・・・・

</project>

plugins / plugin-management

プロジェクトのビルドやレポートの生成に利用しているMaven2プラグインについてのレポート。

pom.xml

<project>

	・・・・

	<build>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>2.0.2</version>
				</plugin>

	・・・・

			</plugins>
		</pluginManagement>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.6</source>
					<target>1.6</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>

	・・・・

		</plugins>
	</build>

	・・・・

</project>

scm

Source Code Management (ソースコード管理システム : CVSやSubversionなど) についてのレポート。

pom.xml

<project>

	・・・・

	<scm>
		<connection>scm:svn:http://example.org/svn/trunk</connection>
		<developerConnection>scm:svn:https://example.org/svn/trunk</developerConnection>
		<url>http://example.org/trac/browser/trunk</url>
	</scm>

	・・・・

</project>

summary

プロジェクトの簡単なまとめを表示するレポート。

pom.xml

<project>

	・・・・

	<name>sample project</name>
	<url>http://example.org/</url>
	<organization>
		<name>Example Organization</name>
		<url>http://example.org/</url>
	</organization>

	・・・・

</project>

おまけ

生成されたサイトの各ページに開発開始年が表示されます。
こちらも表示しておいた方がいいでしょう。

pom.xml

<project>

	・・・・

	<inceptionYear>2008</inceptionYear>

	・・・・

</project>

レポート用のMaven2プラグイン

基本情報以外の情報を、Maven2プラグインを利用することで出力することができます。

ここでは開発時に特に役に立ちそうなプラグインを紹介します。
なお、以下の設定例では、pom.xmlファイルのproject/reporting/plugins内に記述するものとします。
(maven-project-info-reports-pluginに並べて書くことになります。)

maven-javadoc-plugin

JavaDocを出力するプラグイン。
詳細はMaven 2 Javadoc Pluginを参照。

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<configuration>
					<encoding>UTF-8</encoding>
					<charset>UTF-8</charset>
				</configuration>
			</plugin>

maven-jxr-plugin

Javaソースコードを、カラーリングしてJavaDoc風のインターフェイスで出力するプラグイン。
詳細はMaven 2 JXR Pluginを参照。

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jxr-plugin</artifactId>
				<configuration>
					<inputEncoding>UTF-8</inputEncoding>
					<outputEncoding>UTF-8</outputEncoding>
				</configuration>
			</plugin>

maven-surefire-report-plugin

テスト結果をまとめて出力するプラグイン。
詳細はMaven 2 Surefire Report Pluginを参照。

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-report-plugin</artifactId>
				<reportSets>
					<reportSet>
						<reports>
							<report>report-only</report>
						</reports>
					</reportSet>
				</reportSets>
			</plugin>


cobertura-maven-plugin

テスト網羅率をまとめて出力するプラグイン。
詳細はCobertura Maven Pluginを参照。

			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>cobertura-maven-plugin</artifactId>
			</plugin>

サイトの公開

生成されたサイトをWebサーバーにアップして公開することができます。
アップ先をpom.xmlで設定することでmvnコマンドがデプロイしてくれます。

例えば、前回のsample-jarのプロジェクトサイトをデプロイするための設定は、

pom.xml

<project>
	<modelVersion>4.0.0</modelVersion>
	<groupId>st.happy_camper.sample</groupId>
	<artifactId>sample-jar</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>
	<distributionManagement>
		<site>
			<id>maven.repository</id>
			<name>Sample Project Site</name>
			<url>scp://maven.repository/path/to/public_html</url>
		</site>
	</distributionManagement>
</project>

とし、

$ mvn site-deploy

でデプロイが完了します。
(事前にsiteフェーズまで実行しておく必要があります。)

トラックバック(1)

Happy-Camper Street - モジュール (2008年9月26日 01:01)

複数人のチームでの開発では、機能別やレイヤー別に担当者を分けて開発を行います。ユ... 続きを読む

comments powered by Disqus

Twitter Icon

AdSense

Creative Commons License
このブログはクリエイティブ・コモンズでライセンスされています。
Powered by Movable Type 5.14-ja

Google検索

カスタム検索

2013年10月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31