Index: [Article Count Order] [Thread]

Date:  03 Apr 2001 12:02:48 +0900
From:  Takeshi Kakeda <kakeda@....jp>
Subject:  [XP-jp:01792] Re: Ant の利用方法をまとめました.
To:  extremeprogramming-jp@....jp
Message-Id:  <87itkmsn1j.fsf@....jp>
In-Reply-To:  <ILEBJJEBEEGOFEECJMPKCEMICOAA.mishii@....jp> (Masaru Ishii's message of "Tue, 3 Apr 2001 11:01:40 +0900")
References:  <20010403094537M.hiranabe@....jp> <ILEBJJEBEEGOFEECJMPKCEMICOAA.mishii@....jp>
X-Mail-Count: 01792

こんにちは、懸田です。

>>>>> In [extremeprogramming-jp : No.01790] 
>>>     "Masaru Ishii" <mishii@....jp>さん wrote:

> こんにちは.石井です.
> Ant歴一週間です^^;.

> > 「Practice Ant - Antを利用した継続的インテグレーション」

> 普段の開発では, make を使っており,わかりにくい make を
> やめてAnt に移行しようと思ったのですが,完全に移行すること
> はできませんでした.

> Ant の使い方ですが, make と同じように考えるとはまるようです.
> Ant には Ant の得意分野が, make には make の得意分野が
> あり,今のところ両方使うのが楽ではないか,というのが結論です.
> (Ant について理解不足なのかもしれません)
私も今、実際のプロジェクトで使用していてそう感じています。

> うちの開発では,次のような種類のテストを make (実際には MS
> の nmake)を使って実装しています.必要に応じてコンパイルした後
> でテストが実行されます.
> (以下のテストができるよう,Makefile と テストケースの main メソッド
> を工夫しています).

>  a) あるディレクトリ以下すべてのテストケースを実行

c:\build> nmake test

>  b) あるディレクトリの Foo クラス のテストクラス FooTest のみを実行

c:\build> nmake Foo.test

>  c) FooTest のテストメソッド testFoo のみを実行

c:\build> nmake Foo.test TEST_METHOD=testFoo

>  d) FooTest のテストメソッド testFoo, testBar の2つだけを実行

c:\build> nmake Foo.test TEST_METHOD="testFoo testBar"

> nmake ではなく Ant では, (a) のテストは, build.xml から一気に実行
> できてよいのですが,(b) - (d) の特定のテストを実行する方法がどうして
> もわかりませんでした.というか,できないのではないかと思ってます.
私もお客さんに「個別ファイルを指定してビルドできるようにできないか?」
という要望を受けましたが、Antでは引数を使ってファイル指定してターゲッ
トを実行する手段はないようです。
もっとも、起動時にプロパティを指定することができるので代用は可能ですが
入力が多くてちょっと面倒です(^^;
(ant -D<property>=<value>)

今、パッケージ毎にbuild.xmlを作成し、topにマスターbuild.xmlを作成して
Antターゲットから利用しているのですが、思ったようにうまくいくまで時間
がかかりました。(これは私が未熟なだけかもしれませんが)

> Ant の役割は,プロジェクト全体を扱うもの,たとえば,jar ファイルや
> war ファイルを作成するとか,javadoc を作成するとかそういう場合には
> 非常に便利なのですが,個別の処理を扱うことが不得意なようです.
これはJavaの開発方式への疑問なんですが、例えばAntの配布パッケージを
見てもbuild.xmlは最上層から一発コンパイルをしているようです。
開発途上の状態で、個々のソースをコンパイルしたいという要望はないので
しょうか?

> 逆に,make の場合は上記のような特定のディレクトリに対する処理は
> 得意ですが,ディレクトリ階層が深い場合は難しくなります.
おっしゃる通りですね。ある程度完成したソースツリーはAntの方が楽に
処理できますね。

> 結論として,普段の個別のテストは make で,リリース時の配布ファイル
> 作成等は Ant で,というのが僕の意見なのですが,他に Ant を使って
> いる人がいらっしゃいましたら,意見を聞かせてください.
私も今まさに、その判断に直面しています。
Antを勧めたのは私なので、ここで「makeも使おう」とは言い出しにくいので
す(^^;。

一番簡単なのは、makefileの中にantのターゲットを含めて、個別対応は
make自身で処理させて、一括処理はantに委譲する方法だと考えています。

他の方の意見もお聞きしたいです。

では。
--
Takeshi Kakeda
  mailto:kakeda@....jp
  mailto:kakeda@....jp