gpt4 book ai didi

java - Spring:在 Maven 插件项目中请求加载属性,但使用插件所在项目中的文件

转载 作者:行者123 更新时间:2023-12-02 13:19:23 25 4
gpt4 key购买 nike

我编写了使用 spring 上下文依赖注入(inject)的 Maven 插件。

在某个时间点,spring 必须使用属性文件初始化其中一个 bean。在测试中一切正常。但是,当插件作为构建过程的一部分在不同的项目中构建并使用时,会抛出 FileNotFoundException。

使用以下方式打印当前类路径条目时:

ClassLoader cl = ClassLoader.getSystemClassLoader();
URL[] urls = ((URLClassLoader)cl).getURLs();
for(URL url: urls){
System.out.println("CLASSPATH: " + url.getFile());
}

我唯一得到的是:

CLASSPATH: /path/to/mavendir/boot/plexus-classworlds-2.5.2.jar

通常属性是通过以下代码加载的:

Resource resource = springContext.getResource("classpath:/myPluginConfig.properties");
Properties properties = PropertiesLoaderUtils.loadProperties(resource);

但是找不到文件。

我已在使用我的插件的项目中的 /src/main/resources/ 中放置了正确命名的文件“myPluginConfig.properties”。

在进程资源阶段,文件被复制到目标/类目录(我已检查它是否存在)。所以文件在那里,但类路径不知何故损坏了。

我的插件仅在本地安装为快照,因此我可以快速更新并重新安装它。

谁能帮我解决这个问题吗?

最佳答案

当我们在不同的项目中使用该jar时,资源路径应该是这样的:classpath*:Plugin Config.properties

关于java - Spring:在 Maven 插件项目中请求加载属性,但使用插件所在项目中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43626493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com