Ant,Jenkins,Sonarの導入手順

提供:Software Development Memo
2011年4月16日 (土) 10:44時点におけるAdmin (トーク | 投稿記録)による版 (→‎設定)
ナビゲーションに移動 検索に移動


注意 : このページ「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の品質管理画面を更新

「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」の記述を追記しています。

更新履歴

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