Maven依存関係がtestスコープの場合クラスが見つからずコンパイルエラーとなる
Mavenを利用して、依存関係解決を行っています。
dependencyのscopeタグに「test」を指定して、テストソースにだけ当該ライブラリの利用が許されるように設定したいのですが、コンパイルエラーとなってしまいます。
これはほかにも設定が必要なのでしょうか。
なお、pomに記載の<scope>test</scope>
を削除するとコンパイルが通ります。
pom.xml
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.9.RELEASE</version>
<scope>test</scope>
</dependency>
上記ライブラリ利用側のクラス
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration; ★エラー
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; ★エラー
@RunWith(SpringJUnit4ClassRunner.class) ★エラー
@ContextConfiguration(locations = "classpath:context.xml") ★エラー
public class HogeTest {
@Test
public void testExecute() {
// blah blah
}
}
- 開発環境:Eclipse, Windows7
- 開発言語:Java
追記
マルチモジュール構成になっていて、以下の状態です。
hoge-core > hoge-app (hoge-appはhoge-coreに依存)という構成になっており、hoge-coreのpomに上記のdependencyが記載されており、hoge-appはhoge-coreへの依存のみがpomに記載されています。
hoge-coreのテストソースではコンパイルOKとなりhoge-appではNGとなるのです。