Apacheさんで開発された、自動ビルド機能を持つAntの後発として作られたツール。
ビルドのみならず、開発工程を広くサポートしている。
主には以下の機能を持つ。
・自動ビルド:自動でコンパイル、JAR/WAR等の生成
・自動テスト:JUnit(単体テストツール)等を用いた自動テスト
・ドキュメント生成:テストレポートやJavadocの自動生成
・ライブラリ管理:jarファイル等の外部ライブラリを依存関係込みで管理
・サイト生成:プロジェクトの管理用Webサイト生成
日本語の情報が不足しているために、多くの企業ではAntを使い続けているように思われます。
Jenkinsで使う事の出来るビルドツールはAnt/Maven/Gradle(Ant→Maven→Gradleの順で新しい)。
それぞれ以下のような特徴があるみたいです。
・Ant:build.xml(XMLファイル)を使ったビルドの定義を行う。古くからあるので情報は多いが、設定が煩雑。
・Maven:pom(XMLファイル)を使った定義とゴールによる処理指定を行う。ライブラリ管理は最も優れている。
・Gradle:XMLに依存せず、スクリプトよる記述を行う。膨大なXMLに対応しなくて済む。
今回はあくまでJenkins(オライリー本)を使うための勉強なので、Mavenの基礎部分だけでも把握したいと思っています。
学習しながら書いているので間違った記述なども出てくるかと思うので、後で分かったら直します。
以下の書籍とWebを使って学習中。
まだ勉強を始めたばかりですが、どうも以下について理解を深める必要があるように感じます。
・pom:ライブラリの管理とか色々書いてあるXMLファイル。内容が良くわからない。
・ゴール:mvnコマンド(Maven)実行時に指定する引数で、これによって処理が決まるらしい。
・ビルドライフサイクル:mvnコマンドの引数に与える処理指定っぽい。ゴールと違うのかな。ワードごとサイクル関係みたいなのがあるっぽい。
・リポジトリ:チームメンバ用に配布する管理ライブラリとか置いてあるのがリモートリポジトリ?ローカルリポジトリという場所に必要なファイル等置いて作業するみたい。
どうも書籍は作業メインなので実際にコマンド等試す必要があり、知識が系統立てて把握しづらい気がします。とりあえずやってみて分かるようになるのかも知れません。あとWebの情報はほとんどが英語なので習得に苦労してます・・・。