- PR -

Maven2 マルチプロジェクトでのテストモジュールの依存関係の解決

1
投稿者投稿内容
まさ
ベテラン
会議室デビュー日: 2002/11/15
投稿数: 74
投稿日時: 2008-07-29 19:05
Maven version: 2.0.9
Java version: 1.5.0_07
OS name: "windows xp" version: "5.1" arch: "x86" Family: "windows"


Maven2 の設定について教えてください。

Maven2 のマルチプロジェクトの構成があります。
モジュールは core、db があります。

ローカルレポジトリには、
〜/core/0.5.0/core-0.5.0.jar
〜/core/0.5.0/core-0.5.0-tests.jar
がインストールされています。

db のモジュールは core に依存しており、POM には以下のものが設定されています。
コード:

<dependency>
  <groupId>(略)</groupId>
  <artifactId>fax-core</artifactId>
  <version>[0,)</version>
  <scope>provided</scope>
</dependency>




さて db のテストフェイズで、
core 内のクラス(core-0.5.0-tests.jar に格納されている)を参照する必要があるのですが、
うまく参照できずテストクラスのコンパイルエラーがでてしまい困っています。
# "core-0.5.0-test.jar" に対する依存関係を記述する必要があるのか?
# それともコンパイル時の設定で行うか?
# など、さっぱりわからない状態です。

どのようにするとコンパイルエラーを解決できるでしょうか?
Kissinger
ぬし
会議室デビュー日: 2002/04/30
投稿数: 428
お住まい・勤務地: 愛知県
投稿日時: 2008-07-29 21:40
まささん、こんにちは。

自分で POM書いたことないですが、
testスコープでテスト用のファイルを依存先に指定するのではないでしょうか?
わたなべ
大ベテラン
会議室デビュー日: 2007/12/09
投稿数: 123
お住まい・勤務地: 札幌
投稿日時: 2008-07-29 22:13
> db のテストフェイズでcore 内のクラス(core-0.5.0-tests.jar に格納されている)を参照する必要がある
そもそもこの設計(?)がマズイので難しいです。
テストで共通に使用するプロジェクトを作るか、testではなくmainにいれるべきでしょう。

冷静に考えてください。
あなたがdbプロジェクトの担当で、テストも行っているとして、別の担当であるcoreの"テスト用のコード"に依存してテストの結果が変わるかもしれないってことです。
まさ
ベテラン
会議室デビュー日: 2002/11/15
投稿数: 74
投稿日時: 2008-07-30 09:21
なるほど。

別サブプロジェクトに分けないとだめかな?とは思っていたんで、
そうしようかと思います。

引用:


別の担当であるcoreの"テスト用のコード"に依存してテストの結果が変わるかもしれないってことです。



確かにそうなんですが、各テスト共通の親クラスを core に入れておきたかったんです。
とはいっても、共通親クラスを作ってどうしようというのはこれからなんですが。。。(--;
あまりそういうことはしないものなのでしょうかね?
wadahiro
会議室デビュー日: 2003/07/08
投稿数: 2
投稿日時: 2008-08-12 00:38
本家のガイドに書いてある方法でできると思います。

http://maven.apache.org/guides/mini/guide-attached-tests.html
1

スキルアップ/キャリアアップ(JOB@IT)