Jenkins中过时的Maven项目资源版本

时间:2018-07-02 09:39:56

标签: java maven jenkins

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

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后,都会清理测试工作区。

我对如何确保始终获取最新版本的文件一无所知。我错过了另一种方法吗?是我不知道的某种奇怪的缓存问题吗?

1 个答案:

答案 0 :(得分:0)

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

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