S-JIS[2014-10-25/2015-11-13] 変更履歴

Apache POIのビルド

POIのビルド方法について。


概要

POIはOSSなのでソースが公開されており、ダウンロードしてきてビルドすることが出来る。

ソースは基本的にSubversionで管理されているが、GitHubにもミラーされている。
どちらも読み込み専用のリポジトリーだが、GitHubからはプルリクエストを送ることが出来る。

POIのビルドはAntで行うので、Apache Antがインストールされている必要がある。
ドキュメントはApache Forrestでビルドするので、ドキュメントをビルドしたい場合はインストールしておく必要がある。


GitHubからのソースのダウンロード

GitHubからPOIのソースをダウンロードする方法。

  1. GitHub上のPOIのリポジトリー(https://github.com/apache/poi)をフォークする。
    1. ブラウザー上でGitHubに自分のアカウントでログインし、POIのリポジトリーを開いて「Fork」を押す。
      これで、自分のリポジトリー一覧にPOIのリポジトリーが追加される。
  2. GitHub上の自分のPOIのリポジトリーをローカルにコピー(クローン)する。
    クローンする際には「trunk」ブランチを明示的に指定しておく。
    $ git clone -b trunk git@github.com:hishidama/poi.git
    $ cd poi
    $ git branch -a	…trunkであることを確認

ビルド

POIのソースをビルドするには、ダウンロードしてきたディレクトリー上でAntのコマンドを実行する。

$ cd poi
$ mkdir lib compile-lib
$ ant compile

ビルド中に依存するライブラリー(jarファイルやzipファイル)をダウンロードしたり作成したりするので、ちょっと時間がかかる。
(ダウンロード元のファイルが無くて失敗した場合は、どこか適当な場所からダウンロードして配置して再実行すればよい)

「.eclipse」や「.classpath」ファイルも存在しているので、Eclipseでプロジェクトをインポートすることが出来る。
(lib類が最初は存在していないので、先にAntでビルドする必要がある)


テストの実行

テストを実行するのもAntのコマンドで行う。

$ cd poi
$ ant test

EclipseのJUnitでテストを実行するには、Run ConfigurationでVM引数に「-DPOI.testdata.path=test-data」を追加しておく必要がある。


フォーク元からの更新

フォーク元のリポジトリーの内容は自分の手元には自動では反映されないので、手動で反映させる必要がある。[2014-10-26]

  1. まず、フォーク元のリポジトリーをリモートの接続先として追加する。(これは1回だけ行えばよい)
    $ cd poi
    $ git remote add upstream https://github.com/apache/poi
    $ git remote -v	…「upstream」という名前のリモート先が加わっていることの確認
  2. trunkブランチでフォーク元の内容を取ってくる。
    $ git checkout trunk
    $ git pull upstream trunk
  3. バージョンによってはクラスの内容が変わっているかもしれないので、念のためクリーンしてコンパイルする。[2015-11-13]
    $ ant clean
    $ ant compile
  4. 自分のGitHubリポジトリーに反映させる。
    $ git push origin trunk
  5. トピックブランチで作業している場合は、トピックブランチも変更する。
    $ git checkout wip/hoge	…トピックブランチへ移動
    $ git rebase trunk 	…trunkブランチから反映

プルリクエストの作成

トピックブランチでソースを修正してプルリクエストを送る方法。[2014-11-03]

  1. トピックブランチでソースを修正する。
    $ git checkout trunk
    $ git pull upstream trunk
    $ git checkout -b wip/hoge
    〜ソースを修正する〜
    $ git add src
    $ git commit
  2. trunkブランチを最新にし、トピックブランチに反映させる。
    $ git pull upstream trunk
    $ git rebase trunk
  3. トピックブランチをGitHub上の自分のpoiリポジトリーにpushする。
    $ git push origin wip/hoge
  4. GitHub上で自分のpoiリポジトリーを見ると、「Your recently pushed branchies」という欄が出来て、pushしたトピックブランチが表示されている。
    その右側にある「Compare & pull request」ボタンを押す。
    すると、プルリクエストを作成する画面に遷移する。
  5. プルリクエストの情報を入力する。
  6. 「Create pull request」ボタンを押すと、プルリクエストが作成される。

POI目次へ戻る / Excel操作ライブラリーへ戻る / Java目次へ戻る / 技術メモへ戻る
メールの送信先:ひしだま