2012-02-21 3 views
0

私は多くのモジュールと1つのメタモジュールを持つMaven Javaプロジェクトを持っています。私はテストをしたい。私はコンソールでmvn testコマンドを使う。しかし、他のモジュールのクラスが見つからないため、コンパイル時にテストが失敗します。しかしIDE Eclipseではエラーはありません。どうすれば修正できますか?多くのモジュールを持つJavaプロジェクトをテストする

+0

親モジュールの「多くのモジュール」サブモジュールはありますか? – Ralph

+0

"多くのモジュール"と1つの "メタモジュール"は共通のクラスを共有しています。 –

+0

"多くのモジュール"に親子がありますか?親pomが何を意味しているかの例については、http://www.dev-articles.com/article/Maven-parent-pom-450001を参照してください。 – Ralph

答えて

1

依存関係がよく定義されている場合は、mvn installをmvn testの代わりに使用してください。テストの実行もインストール段階に含まれており、コンパイルに必要なモジュールをローカルMavenリポジトリに取得します。

1

mvn installを実行してください。これはテストをコンパイル、パッケージ化、実行します。そして、すべてがコンパイルされたら、おそらくmvn testしか実行できません。しかし、あなたはあなたのクラスの最新バージョンがテストされていることを確信しているので、完全なプロセスを実行しているときに限り、(IMHO)するべきではありません。効率を心配する必要はありません。すでにコンパイルされている場合、mavenはクラスをコンパイルしません。 mvn clean installだけがすべてを最初から再構築します。

1

あなたのモデルは依存性のサイクルから解放される必要があります。

親pomがあるフォルダからmvn testを実行してみてください。


(詳細)

あなたは、サブモジュールを持つ親のポンポンを持っていない場合。次に、テストするモジュールが依存している他のすべてのモジュールに対して、最初にmvn installを実行する必要があります。

(Eclipseはそれが直接他の開いているプロジェクトへの依存関係を解決することができますので、これを必要としません)しかし、すべてのモジュールは、単一のリリースサイクルに属している場合(すべてのモジュールが同じバージョンでtogeterリリースされます)親と子のモジュール/ pomを使う方が良いかもしれません - 親のpomについてはrun mvnのテストかmvn install、そして正しい順序のすべての子のためにはそれを行うでしょうから。 - 他のすべてのモジュールをインストールした後は、他のモジュールを更新するまで、1つのモジュールに対してmvn testを実行することができます。 - 次に、このアップデートされたモジュールをインストールするか、親のインストールを実行する必要があります。

関連する問題