maven依赖项是否添加到类路径?

maven依赖项是否添加到类路径?,maven,jar,classpath,Maven,Jar,Classpath,我有两个独立的项目A和B都是使用maven构建的。项目B更像是一个资源项目。我正在使用maven为这个项目打包jar 现在对于项目A,我添加项目B的jar作为依赖项。如何从项目A中的某个java文件中的项目B的jar访问资源文件。 我已经确认项目B的jar正在Maven的本地存储库中安装 我搜索了很多,但似乎没有一个答案有用 以下是的目录结构 src |_ 主要的 |_ 资源 |_ dir1 |_ dir2 |_ dir3 |_ 一些配置文件.txt 我想从项目A访问这个Some_config_

我有两个独立的项目A和B都是使用maven构建的。项目B更像是一个资源项目。我正在使用maven为这个项目打包jar

现在对于项目A,我添加项目B的jar作为依赖项。如何从项目A中的某个java文件中的项目B的jar访问资源文件。

我已经确认项目B的jar正在Maven的本地存储库中安装

我搜索了很多,但似乎没有一个答案有用

以下是的目录结构

src |_ 主要的 |_ 资源 |_ dir1 |_ dir2 |_ dir3 |_ 一些配置文件.txt

我想从项目A访问这个Some_config_file.txt,如何找到相对于类路径的路径


有任何帮助/建议吗?

是的,来自
src/main/resources
的所有文件都是最终JAR的一部分,它们与类位于同一路径中。换句话说,您的
\u一些\u config\u file.txt
将在
\u dir1.\u dir2.\u dir3.Foo.class
编译类旁边着陆

所有这些项都放在平面类路径上,即每个JAR的内容在类路径上共享相同的名称空间。为了读取这样的文件,您需要使用
ClassLoader

getClass().getResourceAsStream("/_dir1/_dir2/_dir3/_Some_config_file.txt`);

我将使用哪个类的类装入器?上面上下文中的jar文件只是用来打包所有资源和一个虚拟的hello世界类。@MadEyeMoody85:如果幸运的话,请使用任何
类加载器
(任何类)。在更复杂的环境中(使用类加载器层次结构),您可能需要考虑一下相同的
类加载器加载了哪个类;并返回null。