- - PR -
MavenでClassLoader#getResourceAs...()できない
1
| 投稿者 | 投稿内容 | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-02-21 20:19
お世話になります。 MavenからJUnitテストを実行する際、ClassLoader#getResourceAsStrem() でリソース(*.properties)をロードできずに困っています。 具体的には、あるテスト対象クラスの中で、
のようなコードでプロパティファイルをロードしているのですが、ここで
となってしまい、テストが失敗します。 普段はCygwin(bash)を使っていますが、DOSやMavenIDE-EclipsePlugIn上から maven testを実行しても結果は同じでした。 その際出力されるJUnitテストレポートには次のようなスタックトレースがでています。
上記から原因はMavenのテスト実行時のクラスパス上にロードしようとしている config.propertiesが存在しないのだと思います。 # Mavenではなく、AntやEclipse上でテストを実行する際はconfig.properties # をクラスパスに設定して正常にテストが動作しています。 Mavenのproject.xmlは以下のようにしています。(抜粋) resources要素を使ってテスト実行時のクラスパスに設定するリソースを 指定できるものと思っています。
プロジェクトのディレクトリ構成は以下のとおりです。
この設定で動作すると思ったのですが...何かお気づきの点がありましたらご教授下さい。 尚、当方の環境は、 OS : Windows XP Professional J2SE : 1.4.2 Maven : 1.0 RC1 です。 宜しくお願いします。 #タイプミスがあったので修正しました [ メッセージ編集済み 編集者: YOU@IT 編集日時 2004-02-21 20:21 ] | ||||||||||||||||||||
|
投稿日時: 2004-02-21 23:50
ClassLoader#getSystemResourceは$java_home/jre/lib/extディレクトリにjarファイルとし
て配備することでアクセスすることができるそうです。 projectがclass pathとして含まれているはずなので、ClassLoader#getSystemResourceではなく、ClassLoader#getResourceを試してみてはいかがでしょう。 | ||||||||||||||||||||
|
投稿日時: 2004-02-22 01:08
かずくん さんご回答ありがとうございます。 ご指摘の通りでした。 ClassLoader#getResourceAsStream()で無事動作しました。 と言うか自分では、#getSystemResourceAsStream()ではなく#getResourceAsStream() を使っているつもりでしたが...コードの記述ミスでした。お恥ずかしい... お騒がせしてすみませんでした。 あとお騒がせついでにすみませんが、 > ClassLoader#getSystemResourceは$java_home/jre/lib/extディレクトリに > jarファイルとして配備することでアクセスすることができるそうです。 の情報源を教えていただけませんか? 宜しくお願いします。 | ||||||||||||||||||||
1
