本文主要是介绍多模块中部分模块的配置文件 类加载器加载不到,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
场景:
做公司多模块项目时,发现公司原有的模块的配置文件,类加载器都能加载到文件,而自己新建的模块(或者复制的其他模块改名)。项目目录下:(不方便截图)
项目名
#--子模块1
#--子模块2
#--子模块3
#-----子子模块1
#--------子子模块1的pom
#-----子子模块2
#--------子子模块2的pom
#-----自己新建的模块
#--------子子模块 的pom
#-----pom文件
#--子模块4
#--pom文件
其中每一个子子模块都有一个自己对于的plugins.xml配置文件。该文件都放在 每个子模块的resource文件下,
项目中使用的类加载器代码文件如下:
Enumeration<URL> pluginConfigResources =
Thread.currentThread().getContextClassloader().getResources("plugin.xml")
正常情况下,该语句将会加载 根路径下所有的名字为“plugin.xml”的文件。
解决方法:
1、首先,查看target文件夹是否存在,没有存在的话 build一下。
2、查看target文件夹中是否有“plugin.xml” ,如果没有说明,需要给编译器指明一下哪些是source文件夹,哪些是resource文件夹。idea的structure中可以查看.。这个文件夹的性质还可以通过在pom中添加:也可以指明
<build><resources><resource><directory>src/main/java</dircetory><includes><include>**/*.java</include></includes><filtering>false<filtering><resource><resource><directory>src/main/resources</dircetory><includes><include>**/*.*</include></includes><filtering>false<filtering><resource></resorces>
</build>
3、以上都没问题,而类加载器(java的类加载器会去 里去查找我们的文件名称)死活加载不上,这时看了某个大佬的博客,“构建子模块却无法加载”https://blog.csdn.net/weixin_45151960/article/details/109001773
发现需要在 启动类的pom文件中依赖,我们新建的模块。即使我们新建的模块在它的父模块(该父模块已在启动类模块中添加了依赖)的pom文件中添加 <model>模块名<model>了,我们也要在 启动模块的pom文件中添加,子模块的依赖。
至此,郁闷了几天的事情终于搞定。(遇见的玄学问题,有时候不按上述说的添加子模块依赖,也有可能成功,但很难成功一次,原因不知。。)
这篇关于多模块中部分模块的配置文件 类加载器加载不到的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!