Maven模块依赖性和资源

最后发布: 2014-09-23 11:12:03


问题

我有一个Maven项目,说ProjectA,并且在这个项目中有一个说ClassA的类,它使用资源文件夹中的文件,我正在使用以下方式从资源中读取:

String fileName = IPToGeoMapper.class.getResource("/resourceFile.txt").getFile();
File resourceFile = new File(fileName);

它就像魅力。

现在,当我从该项目中创建工件时(我尝试提取创建的jar并将其打包在jar中),并将其用作其他项目(如ProjectB)的依赖项,ClassA不再找到resourceFile.txt因为它尝试浏览ProjectB的资源文件夹。

我想要最好的全局解决方案,该解决方案将在我导入从ProjectA创建的工件的所有项目中使用。什么是最好的解决方案?

}
maven maven-resources-plugin
回答

尝试这种方式,我以读取属性文件为例。

Properties propfile = new Properties(); propfile.load(PropertyUtils.class.getClassLoader() .getResourceAsStream( "applicationprops.properties"));

BufferedReader reader = new BufferedReader(new InputStreamReader(ClassA.class.getClassLoader().getResourceAsStream("file.txt"))); StringBuilder out = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { out.append(line); } System.out.println(out.toString()); //Prints the string content read from input stream reader.close();

}