我有一个由三个模块组成的应用程序:模块A,模块B和模块C(它是一个Web模块)。我正在使用Maven来构建应用程序。
我实现了以下逻辑:模块A包含在模块B中,使用maven依赖关系,模块B包含在模块C中,也使用依赖关系(我为每个模块都有单独的pom文件)。模块C是部署的模块。
在模块C中,我希望有一个名为files的文件夹,其中包含一些内容文件。此特定文件夹将位于webapp文件夹下。我希望能够在模块B中阅读这些文件。
有办法做到这一点吗?我尝试用getClass()读取文件.getResourceAsStream(" files / file_name")但返回的值为null。
答案 0 :(得分:1)
最干净的解决方案:
D
。D/src/main/resources/WEB-INF/
D
添加为B
这使得B
的文件可用作类路径上的资源,同时保持它们与其他所有文件分开。请注意,要获取文件,您必须使用
getClass().getResourceAsStream("/WEB-INF/...");
否则Java将尝试相对于当前类加载它们。
请注意,C
和D
中的文件名称不同。如果你这样做,那么Java会选择哪个文件随机。
答案 1 :(得分:0)
您应该考虑将所有这些文件放入/src/main/resources
目录,以便在部署时允许这些文件位于应用程序类路径中。因此,您可以从B模块中考虑所有这些文件在类路径中都可用。
显然,您必须考虑将这些文件复制到/src/main/resources
模块B的目录中。