Eclipse, Jenkins, Apache Ivyを使ったプロジェクトにおける開発からデプロイまでの流れを図に描いてみました。
図では書き表せないことがありますね。テスト実行時のクラスパスは実行時ライブラリを含むとか、図で描くとカオスになります。GUIツールでビルド設計するのは意外と難しいのかもしれません。
ビルド設計する上で考えたことを書き出しておきます。何かアドバイスがあったら教えていただけると嬉しいです。
- 開発環境
- インテグレーション環境
- Windows ServerでJenkinsを使う。
- Jenkinsがリポジトリを定期的にポーリングし、更新がある場合はビルドを開始する。
- Antでコンパイル、テスト、パッケージングを実行する。
- 依存ライブラリはApache Ivyで管理する。
- 他プロジェクトへの参照はApache Ivyで管理する。プロジェクト間の関係はJenkinsに反映する。
- JARファイルはIvyリポジトリに登録する。
- ステージング環境に展開するだけで動くツリーをアーカイブする。
- Webアプリの場合はWARファイルを生成する。
- バッチアプリの場合はZIPファイルを生成する。バッチの起動シェルもZIPに含める。
- ステージング環境
まとめ
- ビルドとデプロイはワンクリック。
- デプロイするものはすべてビルドサーバで生成する。
- ビルドするものはすべてリポジトリで管理する。
- ライブラリはすべてMavenやIvyで管理する。
空いた時間でブクマ三昧(だといいなぁ)