2012-02-14 20 views
4

Netbeans 7.1 IDEにMavenプロジェクトがあります。NetbeansのMavenプロジェクト:「依存関係」と「テスト依存関係」の両方に依存関係を追加する方法

DependenciesTest Dependenciesの両方に同じ依存関係を追加したいと思います。

1つに追加すると、1つに追加すると、他のものから削除されます。

のpom.xmlに依存関係を複製し、そのうちの一つに含む:いずれか..doesn't仕事

<scope>test</scope> 

ヘルプ!

詳細:

は、私がプロジェクトMyProjectMyDependencyを持っていると仮定します。

<dependencies> 
      <dependency> 
        <groupId>my.group.id</groupId> 
        <artifactId>AnArtifactId</artifactId> 
        <version>1.0-SNAPSHOT</version> 
      </dependency> 
</dependencies> 

MyProjectMyDependencyソースパッケージ内Source Packagesフォルダ(すなわちMyProject/src/main/...)参照クラスにいくつかのクラスが含ま:

MyProjectは、デフォルトの範囲(すなわち、compile範囲)依存関係としてMyDependencyを含んでいます。これらは完全に機能します。 Netbeansは赤いエラーフラグを表示せず、これらのクラスは正常にコンパイルされます。

MyProjectMyDependency試験パッケージ内Test Packagesフォルダ(すなわちMyProject/src/test/...)参照クラスにいくつかのクラスが含まれています。 Netbeansは、これらの参照のための赤色のエラーフラグをMyProjectに表示します。

MyDependencyは、クリーニングされ、構築され、mvn clean install -DskipTestsを使用してローカルのMavenレポに保存されました。 MyProjectに対して同じコマンドを実行すると、テストクラス内でのみエラーが発生します。非テストクラスはうまくコンパイルされます。

答えて

2

私は解決策は、次のようにポンポンの依存関係のエントリを複製することです発見:のみ<scope>test</scope>を指定

<dependencies> 
      <dependency> 
        <groupId>my.group.id</groupId> 
        <artifactId>AnArtifactId</artifactId> 
        <version>1.0-SNAPSHOT</version> 
      </dependency> 
      <dependency> 
        <groupId>my.group.id</groupId> 
        <artifactId>AnArtifactId</artifactId> 
        <version>1.0-SNAPSHOT</version> 
        <scope>test</scope> 
        <type>test-jar</type> 
      </dependency> 
</dependencies> 

MyDependencyのソースパッケージを含むJARがMyProjectのテストパッケージの依存関係として使用されるべきであることを示します。

<type>test-jar</type>を指定することによって、MyDependencyのテストジャー(つまり、テストパッケージを含むジャー)は、MyProjectのテストパッケージの依存として使用されます。

0

Dependenciesも自動的にTest Dependenciesですが、それ以外の方法ではありません。

+0

ありがとうございました。どうして 'ソースパッケージ 'のクラスが依存関係を認識しているのですが、'テストパッケージ'のクラスは認識できません。 NetBeansの不具合だけではなく、bashの 'mvn'を使ってビルドしようとすると、テストクラスではうまくいきません:(私のテストで使用されたリファレンスを自分の依存関係の中の 'テストパッケージ'に入れました。依存性がデフォルトの場合、プロジェクトのテストパッケージは依存関係のテストパッケージを表示できますコンパイル? – KomodoDave

+0

POMファイルを投稿してください。 –

+0

私は会社の方針のためにできません。しかし私は私のOPに多くの追加情報を追加しました。それ以上のアドバイスは非常に感謝されるでしょう。 – KomodoDave