S-JIS[2014-12-23/2014-12-25] 変更履歴

Asakusa Frameworkのビルド

Asakusa Framework本体のビルド方法について。


概要

AsakusaFWはOSSであり、ソースはGitHubで公開されている。

(Asakusaアプリケーションの開発環境(ビルド方法)はGradleになったが、)AsakusaFW本体のビルドにはMavenを使う。

AsakusaFW本体のテストを実行する為にはHadoopが必要。なので、環境(OS)はUNIXである必要がある。[2014-12-25]
(Asakusaアプリケーションの開発環境をJinrikishaで作っておくと、そこにはHadoopが入るので、その環境を使うと楽。
 以前のJinrikishaではMavenもインストールされたのだが、ビルド方法がGradleになってから、Mavenは入らなくなった(苦笑))


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

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

AsakusaFWのブランチはいくつかあるが、masterが最新版となっているので、基本的にはmasterを使う。

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

README.mdにビルド方法についての説明が書いてあったりする。


フォーク元からの更新

フォーク元のリポジトリーの内容は自分の手元には自動では反映されないので、手動で反映させる必要がある。
(大昔にフォークだけした場合、AsakusaFWのソース構成がだいぶ変わっているので、最新版を取得する必要がある)

  1. まず、フォーク元のリポジトリーをリモートの接続先として追加する。(これは1回だけ行えばよい)
    $ cd asakusafw
    $ git remote add upstream https://github.com/asakusafw/asakusafw
    $ git remote -v	…「upstream」という名前のリモート先が加わっていることの確認
  2. masterブランチでフォーク元の内容を取ってくる。
    $ git checkout master
    $ git pull upstream master
  3. 自分のGitHubリポジトリーに反映させる。
    $ git push origin master

コンパイル

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

$ cd asakusafw
$ mvn compile

ビルド中に依存するライブラリー(pomファイルやjarファイル)をダウンロードしたり作成したりするので、最初はちょっと時間がかかる。


Eclipseへのインポート

AsakusaFW用のEclipseの設定(.projectや.classpath等)の生成は以下の様にして作成する。

$ cd asakusafw
$ mvn eclipse:eclipse

AsakusaFW関連のプロジェクトは多いが、asakusafwの下の全プロジェクトをEclipseにインポートしておくのが無難。


テストの実行

AsakusaFWのテスト(JUnit)を実行するには、コンパイルと同様にMavenのコマンドを実行する。[2014-12-25]

$ cd asakusafw
$ mvn test

Hadoopのインプロセスモード(スモールジョブ実行エンジンを使用?)でテストすることも出来るようだ。

$ mvn test -Dhadoop.inprocess

試用

自分で修正したAsakusaFWを実際に動かしてみるには、以下の様にする。[2014-12-25]

  1. まず、AsakusaFWをMavenのローカルリポジトリーに登録する。
    $ cd asakusafw
    $ mvn install -DskipTests
  2. AsakusaFWのpom.xmlを見て、バージョンを確認する。
    $ head -8 pom.xml
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<name>Asakusa Framework Aggregator POM</name>
    	<groupId>com.asakusafw</groupId>
    	<artifactId>asakusa-root-project</artifactId>
    	<version>0.7-SNAPSHOT</version>	←これ
    	<packaging>pom</packaging>
  3. Asakusaアプリケーションのプロジェクトのbuild.gradleを修正する。
    リポジトリーの設定はどこに追加してもいいらしいが、buildscriptのブロックの下辺りが無難かな。
    $ cd Asakusaアプリケーション
    $ vi build.gradle
    // Mavenのローカルリポジトリーを見に行く設定を追加
    repositories {
        mavenLocal()
    }
    asakusafw {
        // バージョンを、AsakusaFWのpom.xmlに書かれていたものに変更
        asakusafwVersion '0.7-SNAPSHOT'
  4. AsakusaアプリケーションのEclipseの設定を作り直す。
  5. Asakusaアプリケーションのビルドパス(あるいは.classpathファイル)を見て、asakusaのjarファイルがMavenのローカルリポジトリー(/home/hishidama/.m2/repository/com/asakusafw/〜)のものになっていればOK。
    ついでに、jarファイルのファイル名に付いているバージョンも、pom.xmlに書かれていたバージョンになっているはず。

AsakusaFW目次へ戻る / 技術メモへ戻る
メールの送信先:ひしだま