他のMavenモジュールのリソースをどのように使用できますか?私の目標はAbstractImportClass
、特定のMavenモジュールにインポートされるファイルと同様にファイルを提供することです。そして、このクラスを拡張する他のモジュール内でこのモジュールを使用します。
ModuleA
、、を含むsrc/main/java/MyAbstractImportClass.java
としましょうsrc/main/resources/MyImport.csv
ここで、で抽象インポートクラスを使用したいと思いますModuleB
。むしろ、それを拡張し、abstract-fileimportといくつかのカスタム関数を使用します。次にModuleC
、アブストラクトのインポートといくつかのカスタム関数も使用します。
問題は次のとおりです。抽象クラスでのインポートはととともに行わreader
れInputStream
ます。ModuleAだけを実行すると、すべて問題ありません。
しかし、maven pomを介してモジュールをインクルードし、モジュールを拡張してインポートを呼び出そうとするとNullPointerException
、リーダーが使用されている行に到達します。
当然のことながら、この方法で外部モジュールリソースを使用することはできません。
しかし、代わりにこれをどのように利用できますか?
アップデート:
モジュールA:
src/main/java/path/to/MyClassA.java
src/main/resources/path/to/test.txt
abstract class MyClassA {
public static String TESTFILE = test.txt;
List<String> doImport(String filename) {
InputStream fileStream = resourceClass.getResourceAsStream(filename);
//some precessing
return list;
}
}
モジュールB:
src/main/java/path/to/MyClassB.java
class MyClassB implements MyClassA {
List<String> list = doImport(TESTFILE);
}
MyClassBをAと同じディレクトリに配置すると、すべてが正常に機能します。独自のモジュールでBをビルドすると、InputStreamのNullPointerが取得されます。これは、ファイルが見つからないことを意味します。