「Maven,Jenkins,Sonarの導入手順」の版間の差分
(ページの作成: Category:下書き {{Stub}} 本ページでは、Javaソフトウェア管理ツール群である、Maven・Jenkins・Sonarの導入手順を記述します。本ページ...) |
(→環境) |
||
9行目: | 9行目: | ||
* Jenkins : 1.396 | * Jenkins : 1.396 | ||
* Sonar : 2.5 | * Sonar : 2.5 | ||
* Tomcat : 7.0.8 | |||
* MySQL : 5.1.54 | |||
== インストール == | |||
=== Tomcat === | |||
入手先 : http://tomcat.apache.org/ | |||
$ tar zxvf apache-tomcat-7.0.8.tar.gz | |||
# mv apache-tomcat-7.0.8 /usr/local/ | |||
=== Maven === | |||
入手先 : http://maven.apache.org/ | |||
$ tar zxvf apache-maven-3.0.2-bin.tar.gz | |||
# mv apache-maven-3.0.2 /usr/local/ | |||
=== Sonar === | |||
入手先 : http://www.sonarsource.com/ | |||
$ unzip sonar-2.5.zip | |||
# mv sonar-2.5 /usr/local/ | |||
WARファイル生成のために必要なライブラリが不足しているので、[http://repo2.maven.org/maven2/org/apache/ant/ant-nodeps/1.7.0/ant-nodeps-1.7.0.jar ant-nodeps-1.7.0.jar]をダウンロードし、「 /usr/local/sonar-2.5/war/apache-ant-1.7.0/lib/」に保存します。 | |||
参考 : http://jira.codehaus.org/browse/SONAR-2109 | |||
=== MySQL === | |||
入手先 : http://www.mysql.com/ | |||
$ tar zxvf mysql-5.1.54.tar.gz | |||
$ cd mysql-5.1.54 | |||
$ ./configure | |||
$ make | |||
# make install | |||
=== Jenkins === | |||
入手先 : http://jenkins-ci.org/ | |||
# cp jenkins.war /usr/local/apache-tomcat-7.0.8/webapps/ | |||
== 設定 == | |||
=== MySQL === | |||
ユーザ「mysql」を作成し、DBを初期化します。 | |||
# /usr/sbin/useradd mysql | |||
# /usr/local/bin/mysql_install_db --user=mysql | |||
DBを起動し、rootのパスワードを設定します。 | |||
# /usr/local/bin/mysqld_safe --user=mysql & | |||
# /usr/local/bin/mysqladmin -u root password <password> | |||
Sonarでアクセスするためのユーザ(sonar)とパスワード(sonar)を作成し、DBを作成します。 | |||
# mysql -u root -p | |||
<source lang="sql"> | |||
mysql> grant all privileges on *.* to sonar@localhost identified by 'sonar' with grant option; | |||
mysql> create database sonar default character set utf8; | |||
</source> | |||
=== Tomcat === | |||
「conf/server.xml」の「Connector」要素に「URIEncoding="UTF-8"」を加えます。 | |||
<source lang="xml"> | |||
<Connector port="8080" protocol="HTTP/1.1" | |||
connectionTimeout="20000" | |||
redirectPort="8443" URIEncoding="UTF-8" /> | |||
</source> | |||
参考 : http://wiki.jenkins-ci.org/display/JA/Tomcat | |||
Sonar起動時のOutOfMemory発生を防ぐため、Tomcatの起動オプションを追加します。「/etc/bashrc」等に以下を追記します。 | |||
export CATALINA_OPTS="-Xms1024m -Xmx1024m -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -XX:MaxPermSize=256m" | |||
参考 : http://docs.codehaus.org/display/SONAR/Install+Sonar#InstallSonar-Step4Startserver | |||
=== Sonar === | |||
Tomcatで動作させるためのアーカイブファイルである「sonar.war」を作成します。 | |||
MySQLを使用するための設定を行います。「conf/sonar.properties」のDerbyの設定をコメントアウトし、MySQL用の設定行のコメントアウトを元に戻します。 | |||
Before : | |||
sonar.jdbc.url: jdbc:derby://localhost:1527/sonar;create=true | |||
sonar.jdbc.driverClassName: org.apache.derby.jdbc.ClientDriver | |||
sonar.jdbc.validationQuery: values(1) | |||
After : | |||
sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8 | |||
sonar.jdbc.driverClassName: com.mysql.jdbc.Driver | |||
sonar.jdbc.validationQuery: select 1 | |||
WARファイルのビルドを実行します。必ずDB設定の後に実行してください。 | |||
# cd /usr/local/sonar-2.5/war/ | |||
# ./build-war.sh | |||
ビルド時に以下のエラーが出た場合は、[http://repo2.maven.org/maven2/org/apache/ant/ant-nodeps/1.7.0/ant-nodeps-1.7.0.jar ant-nodeps-1.7.0.jar]が「apache-ant-1.7.0/lib/」に存在することを確認してください。 | |||
<source lang="text"> | |||
BUILD FAILED | |||
/usr/local/sonar-2.5/war/build.xml:63: Problem: failed to create task or type replaceregexp | |||
Cause: the class org.apache.tools.ant.taskdefs.optional.ReplaceRegExp was not found. | |||
This looks like one of Ant's optional components. | |||
Action: Check that the appropriate optional JAR exists in | |||
-/usr/local/sonar-2.5/war/apache-ant-1.7.0/lib | |||
-/root/.ant/lib | |||
-a directory added on the command line with the -lib argument | |||
Do not panic, this is a common problem. | |||
The commonest cause is a missing JAR. | |||
This is not a bug; it is a configuration problem | |||
</source> | |||
ビルドが正常に終了すると、同一ディレクトリに「sonar.war」が生成されます。これを、Tomcatのwebappsにコピーします。 | |||
# cp sonar.war /usr/local/apache-tomcat-7.0.8/webapps/ | |||
=== Maven === | |||
MySQLに接続するための設定を行います。 | |||
以下を「/usr/local/apache-maven-3.0.2/conf/setting」の「profiles」要素の中に追記します。 | |||
<source lang="xml"> | |||
<profile> | |||
<id>sonar</id> | |||
<activation> | |||
<activeByDefault>true</activeByDefault> | |||
</activation> | |||
<properties> | |||
<!-- EXAMPLE FOR MYSQL --> | |||
<sonar.jdbc.url> | |||
jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8 | |||
</sonar.jdbc.url> | |||
<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver> | |||
<sonar.jdbc.username>sonar</sonar.jdbc.username> | |||
<sonar.jdbc.password>sonar</sonar.jdbc.password> | |||
<!-- SERVER ON A REMOTE HOST --> | |||
<sonar.host.url>http://<HOST_NAME>:8080/sonar</sonar.host.url> | |||
</properties> | |||
</profile> | |||
</source> | |||
=== その他 === | |||
「MAVEN_HOME」「JENKINS_HOME」の環境変数を設定します。 | |||
export MAVEN_HOME=/usr/local/apache-maven-3.0.2/ | |||
export JENKINS_HOME=/usr/local/jenkins/ | |||
JenkinsがMavenのコマンドである「mvn」を実行するために、「/usr/local/apache-maven-3.0.2/bin/」をPATHに加えます。 | |||
== 起動 == | |||
=== MySQL === | |||
# /usr/local/bin/mysqld_safe --user=mysql & | |||
=== Tomcat === | |||
# /usr/local/apache-tomcat-7.0.8/bin/startup.sh | |||
「http://<ホスト名>:8080/jenkins」でJenkinsのページにアクセスできます。 | |||
[[ファイル:Install sonar01.png]] | |||
「http://<ホスト名>:8080/sonar」でSonarのページにアクセスできます。 | |||
[[ファイル:Install sonar02.png]] | |||
初期起動時は、Sonar用のDB初期化処理が動くのでページにアクセスできるようになるまでに多少時間がかかります。 | |||
== Sonarの品質管理画面を更新 == | |||
Sonar初期起動時は、プロジェクトが何も登録されていません。ここでは、実際にプロジェクト作成する所から、Sonarでソースコードの品質を確認するまでの手順を記述します。ここでの手順はあくまで参考なので、この通りに実行しなくても良いです。 | |||
=== Subversionリポジトリを作成する === | |||
Tomcatが動作しているマシンに、Subversionリポジトリを作成します。 | |||
# mkdir /var/lib/svn/sonar-sample -p | |||
# svnadmin create . | |||
# svnserve -d --listen-port 8001 -r . | |||
匿名ユーザでもコミットができるように「 /var/lib/svn/sonar-sample/conf/svnserve.conf」を編集します。 | |||
Before : | |||
# anon-access = read | |||
After : | |||
anon-access = write | |||
=== Mavenプロジェクトを作成してコミットする === | |||
ここでは、WindowsのEclipse 3.6(Pleades All in One)を使用して、MavenプロジェクトをSubversionにコミットする手順を記述します。 | |||
m2eclipseを使用して、Mavenプロジェクトを作成します。m2eclipseが導入されていない場合は、[[ここ http://m2eclipse.sonatype.org/]]から入手してください。 | |||
Mavenプロジェクトを作成します。 | |||
[[ファイル:Install sonar03.png]] | |||
アーキタイプは適当に選択してください。(画像は省略しています) | |||
値を適当に入力します。 | |||
[[ファイル:Install sonar04.png]] | |||
Mavenプロジェクトが作成されます。 | |||
[[ファイル:Install sonar05.png]] | |||
Subversionにインポートします。 | |||
[[ファイル:Install sonar06.png]] | |||
[[ファイル:Install sonar07.png]] | |||
[[ファイル:Install sonar08.png]] | |||
[[ファイル:Install sonar09.png]] | |||
[[ファイル:Install sonar10.png]] | |||
[[ファイル:Install sonar11.png]] | |||
[[ファイル:Install sonar12.png]] | |||
=== Jenkinsでジョブを設定する === | |||
先ほどコミットしたプロジェクトをジョブとして設定します。 | |||
最初に、「Jenkinsの管理」->「システムの設定」からMavenの設定を行います。 | |||
次に、「新規ジョブ作成」からジョブを作成します。 | |||
[[ファイル:Install sonar13.png]] | |||
「ソースコード管理システム」と「Maven」と「ビルド」の項目を変更します。 | |||
[[ファイル:Install sonar14.png]] | |||
[[ファイル:Install sonar15.png]] | |||
[[ファイル:Install sonar16.png]] | |||
「ビルド実行」を選択すると、ビルドが開始されます。 | |||
[[ファイル:Install sonar17.png]] | |||
コンソール出力の最後に「Finished: SUCCESS」と表示されていれば、正常に終了しています。 | |||
[[ファイル:Install sonar18.png]] | |||
再度、「http://<ホスト名>:8080/sonar」にアクセスると、「sonarsample」が追加されています。 | |||
[[ファイル:Install sonar19.png]] | |||
リンクから、ソフトウェア品質の状態が確認できます。 | |||
[[ファイル:Install sonar20.png]] | |||
== インストール == | == インストール == |
2011年2月9日 (水) 14:24時点における版
注意 : このページ「Maven,Jenkins,Sonarの導入手順」は、現在書きかけの状態です。完成版に向けて、今後加筆・修正します。また、本ページの内容は全体的な整合性が取れていない可能性があります。 |
本ページでは、Javaソフトウェア管理ツール群である、Maven・Jenkins・Sonarの導入手順を記述します。本ページのゴールは、取り上げる3つのツールを組み合わせることにより、複数人で開発しているソフトウェアの品質をリアルタイムで確認できる環境を得ることです。
環境
- OS : CentOS 5.5
- Maven : 3.0.2
- Jenkins : 1.396
- Sonar : 2.5
- Tomcat : 7.0.8
- MySQL : 5.1.54
インストール
Tomcat
入手先 : http://tomcat.apache.org/
$ tar zxvf apache-tomcat-7.0.8.tar.gz # mv apache-tomcat-7.0.8 /usr/local/
Maven
入手先 : http://maven.apache.org/
$ tar zxvf apache-maven-3.0.2-bin.tar.gz # mv apache-maven-3.0.2 /usr/local/
Sonar
入手先 : http://www.sonarsource.com/
$ unzip sonar-2.5.zip # mv sonar-2.5 /usr/local/
WARファイル生成のために必要なライブラリが不足しているので、ant-nodeps-1.7.0.jarをダウンロードし、「 /usr/local/sonar-2.5/war/apache-ant-1.7.0/lib/」に保存します。
参考 : http://jira.codehaus.org/browse/SONAR-2109
MySQL
入手先 : http://www.mysql.com/
$ tar zxvf mysql-5.1.54.tar.gz $ cd mysql-5.1.54 $ ./configure $ make # make install
Jenkins
入手先 : http://jenkins-ci.org/
# cp jenkins.war /usr/local/apache-tomcat-7.0.8/webapps/
設定
MySQL
ユーザ「mysql」を作成し、DBを初期化します。
# /usr/sbin/useradd mysql # /usr/local/bin/mysql_install_db --user=mysql
DBを起動し、rootのパスワードを設定します。
# /usr/local/bin/mysqld_safe --user=mysql & # /usr/local/bin/mysqladmin -u root password <password>
Sonarでアクセスするためのユーザ(sonar)とパスワード(sonar)を作成し、DBを作成します。
# mysql -u root -p
mysql> grant all privileges on *.* to sonar@localhost identified by 'sonar' with grant option;
mysql> create database sonar default character set utf8;
Tomcat
「conf/server.xml」の「Connector」要素に「URIEncoding="UTF-8"」を加えます。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
参考 : http://wiki.jenkins-ci.org/display/JA/Tomcat
Sonar起動時のOutOfMemory発生を防ぐため、Tomcatの起動オプションを追加します。「/etc/bashrc」等に以下を追記します。
export CATALINA_OPTS="-Xms1024m -Xmx1024m -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -XX:MaxPermSize=256m"
参考 : http://docs.codehaus.org/display/SONAR/Install+Sonar#InstallSonar-Step4Startserver
Sonar
Tomcatで動作させるためのアーカイブファイルである「sonar.war」を作成します。
MySQLを使用するための設定を行います。「conf/sonar.properties」のDerbyの設定をコメントアウトし、MySQL用の設定行のコメントアウトを元に戻します。
Before :
sonar.jdbc.url: jdbc:derby://localhost:1527/sonar;create=true sonar.jdbc.driverClassName: org.apache.derby.jdbc.ClientDriver sonar.jdbc.validationQuery: values(1)
After :
sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8 sonar.jdbc.driverClassName: com.mysql.jdbc.Driver sonar.jdbc.validationQuery: select 1
WARファイルのビルドを実行します。必ずDB設定の後に実行してください。
- cd /usr/local/sonar-2.5/war/
- ./build-war.sh
ビルド時に以下のエラーが出た場合は、ant-nodeps-1.7.0.jarが「apache-ant-1.7.0/lib/」に存在することを確認してください。
BUILD FAILED
/usr/local/sonar-2.5/war/build.xml:63: Problem: failed to create task or type replaceregexp
Cause: the class org.apache.tools.ant.taskdefs.optional.ReplaceRegExp was not found.
This looks like one of Ant's optional components.
Action: Check that the appropriate optional JAR exists in
-/usr/local/sonar-2.5/war/apache-ant-1.7.0/lib
-/root/.ant/lib
-a directory added on the command line with the -lib argument
Do not panic, this is a common problem.
The commonest cause is a missing JAR.
This is not a bug; it is a configuration problem
ビルドが正常に終了すると、同一ディレクトリに「sonar.war」が生成されます。これを、Tomcatのwebappsにコピーします。
# cp sonar.war /usr/local/apache-tomcat-7.0.8/webapps/
Maven
MySQLに接続するための設定を行います。
以下を「/usr/local/apache-maven-3.0.2/conf/setting」の「profiles」要素の中に追記します。
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- EXAMPLE FOR MYSQL -->
<sonar.jdbc.url>
jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
</sonar.jdbc.url>
<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonar</sonar.jdbc.password>
<!-- SERVER ON A REMOTE HOST -->
<sonar.host.url>http://<HOST_NAME>:8080/sonar</sonar.host.url>
</properties>
</profile>
その他
「MAVEN_HOME」「JENKINS_HOME」の環境変数を設定します。
export MAVEN_HOME=/usr/local/apache-maven-3.0.2/ export JENKINS_HOME=/usr/local/jenkins/
JenkinsがMavenのコマンドである「mvn」を実行するために、「/usr/local/apache-maven-3.0.2/bin/」をPATHに加えます。
起動
MySQL
# /usr/local/bin/mysqld_safe --user=mysql &
Tomcat
# /usr/local/apache-tomcat-7.0.8/bin/startup.sh
「http://<ホスト名>:8080/jenkins」でJenkinsのページにアクセスできます。
「http://<ホスト名>:8080/sonar」でSonarのページにアクセスできます。
初期起動時は、Sonar用のDB初期化処理が動くのでページにアクセスできるようになるまでに多少時間がかかります。
Sonarの品質管理画面を更新
Sonar初期起動時は、プロジェクトが何も登録されていません。ここでは、実際にプロジェクト作成する所から、Sonarでソースコードの品質を確認するまでの手順を記述します。ここでの手順はあくまで参考なので、この通りに実行しなくても良いです。
Subversionリポジトリを作成する
Tomcatが動作しているマシンに、Subversionリポジトリを作成します。
# mkdir /var/lib/svn/sonar-sample -p # svnadmin create . # svnserve -d --listen-port 8001 -r .
匿名ユーザでもコミットができるように「 /var/lib/svn/sonar-sample/conf/svnserve.conf」を編集します。
Before :
# anon-access = read
After :
anon-access = write
Mavenプロジェクトを作成してコミットする
ここでは、WindowsのEclipse 3.6(Pleades All in One)を使用して、MavenプロジェクトをSubversionにコミットする手順を記述します。
m2eclipseを使用して、Mavenプロジェクトを作成します。m2eclipseが導入されていない場合は、ここ http://m2eclipse.sonatype.org/から入手してください。
Mavenプロジェクトを作成します。
アーキタイプは適当に選択してください。(画像は省略しています)
値を適当に入力します。
Mavenプロジェクトが作成されます。
Subversionにインポートします。
Jenkinsでジョブを設定する
先ほどコミットしたプロジェクトをジョブとして設定します。
最初に、「Jenkinsの管理」->「システムの設定」からMavenの設定を行います。
次に、「新規ジョブ作成」からジョブを作成します。
「ソースコード管理システム」と「Maven」と「ビルド」の項目を変更します。
「ビルド実行」を選択すると、ビルドが開始されます。
コンソール出力の最後に「Finished: SUCCESS」と表示されていれば、正常に終了しています。
再度、「http://<ホスト名>:8080/sonar」にアクセスると、「sonarsample」が追加されています。
リンクから、ソフトウェア品質の状態が確認できます。