gpt4 book ai didi

java - 在 Jenkins 中获取过时版本的 Maven 项目资源

转载 作者:太空宇宙 更新时间:2023-11-04 10:21:19 25 4
gpt4 key购买 nike

我继承了一个项目,我偶然发现了这段代码,它试图使用 getSystemResource 给出的 URL 加载 /src/main/resources 中的资源并获取它的流:

try
{
is = new URL(this.getClass().getSystemResource("checker/config.default.xml").toString()).openStream();
FileUtils.copyInputStreamToFile(is, this.configFile);
}
catch (IOException e)
{
log.error("Could not load default config from API resources!", e);
}
finally
{
IOUtils.closeQuietly(is);
}

但是在我对配置文件进行了一些更改之后,代码片段没有执行它应该执行的操作,并且仍然获取了现在过时的配置版本。我还尝试了 getResource:

ClassLoader classloader = getClass().getClassLoader();
is = new URL(classloader.getResource("checker/config.default.xml").toString()).openStream();

最终选择了getResourceAsStream

ClassLoader classloader = this.getClass().getClassLoader();
is = classloader.getResourceAsStream("checker/config.default.xml");

无济于事,尽管当我在 Eclipse 上本地测试代码时它可以工作,并且当测试在 Jenkins 中使用该工具时我没有得到 null,但该工具仍然使用几个版本前的过时配置。

而且我非常有信心我在该方法中使用的路径是正确的。我尝试了 /src/main/resources/checker/config.default.xml/checker/config.default.xml 但它给了我 NullPointerException

编辑 - 附加信息:我像 Jenkins 一样使用 Eclipse 在本地构建 jar,并检查其中是否也打包了正确版本的资源。每次 Jenkins 运行后,测试工作区也会被清理。

我不知道如何确保它始终获取文件的最新版本。有没有我错过的替代方法?这是我不知道的某种奇怪的缓存问题吗?

最佳答案

checker 项目只是一个更大项目的依赖项之一。

我发现所需资源的旧版本来自另一个依赖项。

关于java - 在 Jenkins 中获取过时版本的 Maven 项目资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51133152/

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