Ant,Jenkins,Sonarの導入手順

提供:Software Development Memo
2011年4月16日 (土) 11:54時点におけるAdmin (トーク | 投稿記録)による版 (→‎Sonarの品質管理画面を更新)
ナビゲーションに移動 検索に移動
印刷用ページはサポート対象外です。表示エラーが発生する可能性があります。ブラウザのブックマークを更新し、印刷にはブラウザの印刷機能を使用してください。


注意 : このページ「Ant,Jenkins,Sonarの導入手順」は、現在書きかけの状態です。完成版に向けて、今後加筆・修正します。また、本ページの内容は全体的な整合性が取れていない可能性があります。

本ページでは、Javaソフトウェア管理ツール群である、Ant・Jenkins・Sonarの導入手順を記述します。Maven,Jenkins,Sonarの導入手順と異なるのは、ビルドツールにMavenではなくAntを使用している点です。

Mavenは、ディレクトリ構成といった各種ルールが予め定義されているため、標準に従えばビルド作業が効率よく行える反面、自由度が低いため融通が利かないという性質があります。

Mavenを導入していないプロジェクトに対してSonarによる品質チェックを行いたい場合、Mavenのルールに無理やり適合させて既存の構成を変更してしまうことは得策とは言えません。Sonar 2.6からAntによるビルドでもSonarを使用でるようになりましたので、その手順を記述します。

環境

  • OS : CentOS 5.5
  • Ant : 1.8.2
  • Jenkins : 1.406
  • Sonar : 2.7
  • Tomcat : 7.0.12
  • MySQL : 5.1.54

インストール

Jenkins, Tomcat, MySQLのインストール方法は、Maven,Jenkins,Sonarの導入手順#インストールを参照ください。

Ant

入手先 : http://ant.apache.org/

$ tar zxvf apache-ant-1.8.2-bin.tar.gz
# mv apache-ant-1.8.2 /usr/local/

Sonar

入手先 : http://www.sonarsource.com/

$ unzip sonar-2.7.zip
# mv sonar-2.7 /usr/local/

Sonar Ant Task

入手先 : http://docs.codehaus.org/display/SONAR/Analyse+with+ANT

上記ページからSonar Ant Taskをダウンロードします。

ダウンロードした「sonar-ant-task-1.0.jar」ファイルを「/usr/local/apache-ant-1.8.2/lib/」に移動します。

設定

Jenkins, Sonar, Tomcat, MySQLのインストール方法は、Maven,Jenkins,Sonarの導入手順#設定を参照ください。

その他

「ANT_HOME」の環境変数を設定します。

export ANT_HOME=/usr/local/apache-ant-1.8.2/

JenkinsがAntのコマンドである「ant」を実行するために、「/usr/local/apache-ant-1.8.2/bin/」をPATHに加えます。

起動

起動方法はMaven,Jenkins,Sonarの導入手順#起動を参照ください。

Sonarの品質管理画面を更新

EclipseでJavaプロジェクトを作成し、Sonarの品質管理画面を更新する場合の手順を記述します。Subversionの使用方法はMaven,Jenkins,Sonarの導入手順#Subversionリポジトリを作成するを参考にしてください。

Javaプロジェクトの作成

Javaプロジェクトのルートディレクトリに「build.xml」ファイルを作成します。ファイルの作成例を以下に示します。

<?xml version="1.0" encoding="UTF-8"?>
<project name="sample" default="compile" basedir="." xmlns:sonar="antlib:org.sonar.ant">
	<description>Sonarサンプル</description>
	<property environment="env" />
	<property name="src" location="src"/>
	<property name="build" location="bin"/>

	<taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml">
		<classpath path="${env.ANT_HOME}/lib/sonar-ant-task-1.0.jar" />
	</taskdef>

	<target name="init">
		<tstamp/>
		<mkdir dir="${build}"/>
	</target>

	<target name="compile" depends="init" description="compile the source">
		<javac srcdir="${src}" destdir="${build}" encoding="MS932" />
	</target>

	<target name="sonar" description="analyze project" >
		<sonar:sonar workDir="/tmp/sonar/test00" key="com.example.test00:test00" version="0.1">
			<property key="sonar.jdbc.url" value="jdbc:mysql://${env.SONAR_HOST_NAME}:3306/sonar?useUnicode=true&amp;characterEncoding=utf8" />
			<property key="sonar.jdbc.driverClassName" value="com.mysql.jdbc.Driver" />
			<property key="sonar.jdbc.username" value="sonar" />
			<property key="sonar.jdbc.password" value="sonar" />
			<property key="sonar.host.url" value="http://${env.SONAR_HOST_NAME}:8080/sonar" />
			<property key="sonar.sourceEncoding" value="MS932" />

			<sources>
				<path location="${src}" />
			</sources>

			<property key="sonar.projectName" value="Sonarサンプル" />
			<property key="sonar.dynamicAnalysis" value="false" />
		</sonar:sonar>
	</target>

	<target name="clean" description="clean up" >
		<delete dir="${build}"/>
	</target>
</project>

今回使用したプロジェクトのエンコードは「UTF-8」でなく「MS932」のため、javacのencoding属性、sonar:sonarのproperty要素に「MS932」の記述を追記しています。

Jenkinsでジョブを設定する

最初に、「Jenkinsの管理」->「システムの設定」からAntの設定を行います。

Install sonar ant 01.png

次に、「新規ジョブ作成」からジョブを作成します。

Install sonar ant 02.png

「ソースコード管理システム」と「ビルド」の項目を変更します。

Install sonar ant 03.png

「ビルド実行」を選択すると、ビルドが開始されます。コンソール出力の最後に「Finished: SUCCESS」と表示されていれば、正常に終了しています。

Install sonar ant 04.png

「http://<ホスト名>:8080/sonar」にアクセスすると、「Sonarサンプル」が追加されています。

Install sonar ant 05.png

Install sonar ant 06.png

更新履歴

  • ページ作成 -- 2011年4月16日 (土) 18:54 (JST)