- 追加された行はこの色です。
- 削除された行はこの色です。
* 概要 [#x2030101]
[[Seasarプロジェクト用のHudson環境:https://www.seasar.org/hudson/]]の説明です。自由に書き足してください。
#contents
* アカウント [#m5f56e98]
アカウントは、[[Seasar Members:https://www.seasar.org/members/]]で利用しているユーザ名とパスワードです。
* 運営方針 [#dba3b772]
- 検討中
** アイデア [#s9d6248e]
- Hudsonのビルド失敗通知専用のメーリングリストを作成し、そこにメールを投げる [[[operation:2123]:http://ml.seasar.org/archives/operation/2008-November/003951.html]]
-- 1. コミッタ全員
-- 2. プロジェクト単位
* 導入されているPlugin [#h5032515]
- Disk Usage Plugin
- JIRA Plugin
- Task Scanner
- Checkstyle Plugin
- FindBugs Plugin
- PMD Plugin
- Warnings Plugin
- Phing Plugin
- Emotional Hudson Plugin
* ジョブ設定例 [#gd38e47f]
** ビルド設定 [#eab4037c]
*** Open Tasks [#x945b6a2]
- Scan workspace for open tasks: チェックする
- Files to scan: **/*.java
- Tasks tags
-- High priority: FIXME
-- Normal priority: TODO
*** PMD [#h2a58fb3]
- Publish PMD Analysis Results: チェックする
-- 使い方??
*** Checkstyle [#je2e47d0]
- Publish Checkstyle Analysis Results: チェックする
-- 使い方??
*** FindBugs [#k04469fd]
- Publish FindBugs Analysis Results: チェックする
-- 使い方??
*** Emotional Hudson [#o848258e]
- ビルド後の処理
-- Emotional Hudson: チェックする
** ビルド後の処理 [#qa3a6ba4]
- Publish Compiler Warnings: チェックする
-- File pattern: **/*.java
* テスト用データベースを使用するには [#z182fc96]
Hudson用のサーバにテスト用データベースを用意してあります。このデータベースを使用することでDBを使用したテストも実行することができます。データベース環境は、Hudsonに新規にジョブを作成すると、作成されたジョブ名に従って5分以内に自動作成されます。
** PostgreSQL [#s33034fe]
- postgresql-server-8.1.11-1.el5_1.1 (x86_64)
- HOST: localhost
- PORT: 5432 (default)
|Hudson Job| DB| USER| PASS |h
|s2container-2.4-seasar2| s2container_2_4_seasar2| s2container_2_4_seasar2| s2container_2_4_seasar2|
|s2container-2.4-s2jdbc-it| s2container_2_4_s2jdbc_it| s2container_2_4_s2jdbc_it| s2container_2_4_s2jdbc_it|
|Cubby-2.0.x| cubby_2_0_x| cubby_2_0_x| cubby_2_0_x|
*** その他、参考情報 [#hd23e72d]
- デフォルトエンコーディング
postgres=# \encoding
UTF8
** MySQL [#n7959a7f]
- mysql-server-5.0.45-7.el5 (x86_64)
- HOST: localhost
- PORT: 3306 (default)
- Default Storage Engine: InnoDB
MySQLの作成できるDBユーザ名の長さが16文字までに制限されているため、次のように「.」や「-」以前の文字列をユーザ名とパスワードに使用します。
|Hudson Job| DB| USER| PASS |h
|s2container-2.4-seasar2| s2container_2_4_seasar2| s2container| s2container |
|s2container-2.4-s2jdbc-it| s2container_2_4_s2jdbc_it| s2container| s2container |
|Cubby-2.0.x| cubby_2_0_x| cubby| cubby |
*** 注意事項 [#u59f576e]
- テーブル名の大文字と小文字は区別されます
Hudsonから利用可能なこのMySQLサーバ環境は、テーブル名の大文字と小文字が区別されます。これはMySQLのデフォルトの仕様として、大文字と小文字が区別されるファイルシステム環境ではテーブル名の大文字と小文字も区別して管理されるためです。
- 参考情報: http://dev.mysql.com/doc/refman/5.1/ja/identifier-case-sensitivity.html
*** その他、参考情報 [#h49fbee3]
- デフォルトエンコーディング
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
** Oracle [#q9b50ceb]
- oracle-xe-univ-10.2.0.1-1.0 (i386)
- HOST: localhost
- PORT: 1521 (default)
Oracleは接続ユーザごとに異なる空間を持っているため、接続先DB(インスタンス)はすべて同じ xe になります。
|Hudson Job| DB| USER| PASS |h
|s2container-2.4-seasar2| xe| s2container_2_4_seasar2| s2container_2_4_seasar2|
|s2container-2.4-s2jdbc-it| xe| s2container_2_4_s2jdbc_it| s2container_2_4_s2jdbc_it|
|Cubby-2.0.x| xe| cubby_2_0_x| cubby_2_0_x|
*** その他、参考情報 [#hd23e72d]
- キャラクタセット
SQL> select parameter, value from nls_database_parameters where parameter like '%HARACTERSET%';
PARAMETER
------------------------------
VALUE
--------------------------------------------------------------------------------
NLS_CHARACTERSET
AL32UTF8
NLS_NCHAR_CHARACTERSET
AL16UTF16
** DB2 [#zf8a136d]
- db2exc_952beta_LNX_x86_64 (DB2 v9.5.0.2 x86_64)
- HOST: localhost
- PORT: 50000 (default)
DB2の作成できるDB名の長さが8文字までに制限されているため、接続先DBはすべて同じ db にし、ジョブごとに異なるスキーマを使用します。
また、DB2は接続ユーザがローカルアカウントのため、接続ユーザはすべて同じアカウントを使用するようになっています。
|Hudson Job| DB| SCHEMA| USER| PASS |h
|s2container-2.4-seasar2| db| s2container_2_4_seasar2| db2inst1| seasar|
|s2container-2.4-s2jdbc-it| db| s2container_2_4_s2jdbc_it| db2inst1| seasar|
|Cubby-2.0.x| db| cubby_2_0_x| db2inst1| seasar|
*** 注意事項 [#f750d095]
- dicon ファイルを使用した xaDataSource の設定例
-- s2container_2_4_s2jdbc_it の場合
--- addProperty で currentSchema を設定します
--- スキーマ名には ''大文字'' と ''小文字'' の区別があります、必ず ''小文字'' で指定してください
<component name="xaDataSource"
class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
<property name="driverClassName">
"com.ibm.db2.jcc.DB2Driver"
</property>
<property name="URL">
"jdbc:db2://localhost:50000/db"
</property>
<property name="user">"db2inst1"</property>
<property name="password">"seasar"</property>
<initMethod name="addProperty">
<arg>"currentSchema"</arg>
<arg>"s2container_2_4_s2jdbc_it"</arg>
</initMethod>
</component>
*** その他、参考情報 [#hd23e72d]
- キャラクタセット
$ db2 get database configuration for データベース名 | grep -i code
Database code page = 1208
Database code set = UTF-8
Database country/region code = 1
*** 以下、古い方式 [#dc38eecb]
DB2の作成できるDB名の長さが8文字までに制限されているため、次のルールで使用するデータベース名を決めてあります。
また、DB2は接続ユーザがローカルアカウントのため、接続ユーザはすべて同じアカウントを使用するようになっています。
- 作成ルール
-- 先頭2文字: db
-- 残り6文字: HudsonのJob名の MD5 の 先頭6文字
--- 大文字小文字そのままの文字列の MD5 です
|Hudson Job| DB| USER| PASS |h
|s2container-2.4-seasar2| db46700f| db2inst1| seasar|
|s2container-2.4-s2jdbc-it| db1c2ae7| db2inst1| seasar|
|Cubby-2.0.x| dbb2a53f| db2inst1| seasar|
- ジョブ名を使用したDB名の求め方 (UNIX環境用)
$ echo "db"`echo -n s2container-2.4-seasar2 | md5sum | head -c 6`
db46700f
$ echo "db"`echo -n s2container-2.4-s2jdbc-it | md5sum | head -c 6`
db1c2ae7
$ echo "db"`echo -n Cubby-2.0.x | md5sum | head -c 6`
dbb2a53f
* 再配布禁止のライブラリを使用するには [#a00466cc]
商用DBなどの再配布禁止のライブラリをCIに使用したい場合は、Hudsonが導入されたサーバのローカルリポジトリにあるライブラリを指定することで使用することができます。
** 利用上の注意 [#xd3d1382]
再配布禁止ライブラリのための <dependency> は、pom.xml の <dependencies> に直接記述しないでください。これは、再配布禁止のライブラリは、Hudsonが導入されたサーバのローカルリポジトリにしか配置されていないため、他の人が自分の環境にチェックアウトした時にビルドできなくなるためです。
再配布禁止ライブラリは、Maven2 のプロファイルを使用して依存性を定義し、Hudsonのジョブ設定にあるビルド手順で使用するプロファイルを指定するといいでしょう。
- 実施例
-- https://www.seasar.org/hudson/job/s2container-2.4-s2jdbc-it/
--- [[s2jdbc-itのpom.xml>http://svn.seasar.org/browse/trunk/s2jdbc-it/pom.xml?root=s2container&view=markup]]
** 用意してあるライブラリ [#zf602ce9]
他に希望するライブラリ・バージョンがある場合は [[operation メーリングリスト:https://www.seasar.org/mailman/listinfo/operation]] までご相談ください。
- Oracle: ojdbc14.jar
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.4</version>
</dependency>
- Oracle: ojdbc5.jar
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc5</artifactId>
<version>11.1.0.7.0</version>
</dependency>
- Oracle: ojdbc6.jar
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.1.0.7.0</version>
</dependency>
- MS SQL Server: sqljdbc.jar
<dependency>
<groupId>com.microsoft</groupId>
<artifactId>sqljdbc</artifactId>
<version>1.2.2828</version>
</dependency>
- DB2: db2jcc.jar
<dependency>
<groupId>com.ibm</groupId>
<artifactId>db2jcc</artifactId>
<version>3.50.152</version>
</dependency>
- DB2: db2jcc4.jar
<dependency>
<groupId>com.ibm</groupId>
<artifactId>db2jcc4</artifactId>
<version>3.50.152</version>
</dependency>
* ドキュメント [#w11a2e19]
その他、Hudsonの詳細な使い方については、Hudsonのサイトなどを見てください。
-http://hudson.dev.java.net/
-http://hudson.gotdns.com/wiki/display/JA/Use+Hudson
-http://gihyo.jp/dev/feature/01/hudson/