2017-11-19 4 views
0

は、テストケースにルートリソースの場所へのアクセス:私はMavenのか、ANTを使用してテストケースを実行したときに this.getClass().getClassLoader().getResource(".")クラスローダのリソースは - 私は/印刷するには、コードの下に使用していますナル値

はしかし、これは異なる結果が得られます。 Mavenビルドの場合、正しいパス「C:\ ....」を取得しますが、ANTはnullを返します。

私はここで何が分からないのでしょうか?

更新:プロジェクトの構造 - src/resources | tst/resources。

+1

あなたのプロジェクトのフォルダ構造とビルドファイルを投稿すると便利です – Vasan

答えて

0

2.5より前のANTバージョンでは、ANTがtst/resourcesをコピーしたり、クラスパス(JIRA#IO-451)に追加しないバグがあるようです。

0

MavenとAntは、異なるクラスローダーシステムを使用します。 Maven uses the Classworlds枠組み

Mavenは私達が たちのクラスローダのグラフを作成したとClassworldsクラスローディングフレームワークを使用しています。

一方Ant uses the "Java's delegation model"

Antのクラスローダの実装はJavaの委任モデルを使用しています

ClassLoaderがどのあなたはgetResource(".")を呼び出していることはMavenとAntの間で同じではありませんので、あなたの結果は異なる場合があります。結果はClassLoaderの実装に大きく依存します。

+0

私はそれを期待していますが、何か値を表示するべきではありませんが、 – user2780757

関連する問題