正しくMavenとEclipseによるスコープ「テスト」とJUnitを使用する方法

DOEN:

私は日食とMavenの中のjunit-テストで間違ってやっているかを理解しようとしています。主に私はMavenのために、この「入門ガイド」を次のようされていますhttps://spring.io/guides/gs/maven/

それはJUnitのに来るときしかし、私のためにそれは完全にそのように機能していません。

main.java.hello test.java.hello:私は日食にSRCの下で私のパッケージを命名した例から、正確なフォルダ構造に従ってください

私のテストクラスGreeterTest.javaは、パッケージtest.java.helloであり、このコンテンツを持っています:

package test.java.hello;

import static org.hamcrest.CoreMatchers.containsString;
import static org.junit.Assert.*;

import org.junit.Test;

import main.java.hello.Greeter;

public class GreeterTest {

    private Greeter greeter = new Greeter();

    @Test
    public void greeterSaysHello() {
        assertThat(greeter.sayHello(), containsString("Hello"));
    }

}

私のpom.xmlでは、依存関係を見つけます:

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>

残念ながら、日食サイス「輸入org.junitが解決することはできません。」コンパイルするためのテストからの変更の依存関係の範囲をした場合、私はこのエラーメッセージを得ることはありませんが、それはスコープが使用されることを意図された方法ではない方法だろう、それを何ですか?

私はまた、日食、このクラスはテストクラスであるため、すべての依存関係が実際に利用可能であることを、理解している変化には何が必要ですか?

ベスト、ニルス

davedupplaw:

問題は、Eclipseは、あなたのソースツリーの開始を考えているところに関連すると思われます。あなたにはあなたのコードを入れているsrc/main/java/hellosrc/main/test/helloしかし、Eclipseはソースツリーがから始まると考えてsrcそれは考えているので、他のフォルダがパッケージされているとのようなあなたのクラスのパッケージ名を与えていますmain.java.hello.Greeter

この問題を解決する最も簡単な方法は、コマンドラインで実行することです。

mvn eclipse:eclipse

これはあなたのEclipseプロジェクトを修正するためのMavenの使用。これは、自動的にソースルートが正しい値に設定します。それが完了すると、プロジェクトを右クリックし、Refresh更新されたプロジェクトを参照してください。

手動でこれを修正するには、プロジェクトを右クリックして選択することができますBuild Path > Configure Build Pathと、中にSource右側のタブ、全体のことを確認してくださいsrc/main/java(右アップがjava!)ソースフォルダとして含まれています。クリックすることで、これを行うAdd Folderと、選択javaの下のツリーにsrc - main以下のために同じ操作を行いますsrc/main/test通常のMavenプロジェクトでは、src/main/resourcesあまりにもソースフォルダとして。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=222555&siteId=1