Получение устаревшей версии ресурса проекта Maven в Jenkins - PullRequest
0 голосов
/ 02 июля 2018

Я унаследовал проект и наткнулся на этот фрагмент кода, который пытается загрузить ресурс в /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, и я не получаю null, когда тесты используют инструмент в Jenkins, инструмент все еще использует устаревшую конфигурацию из нескольких выпусков назад.

Также я вполне уверен, что путь, который я использую в методе, правильный. Я пытался /src/main/resources/checker/config.default.xml или /checker/config.default.xml, но это дает мне NullPointerException.

РЕДАКТИРОВАТЬ - дополнительная информация: Я собираю локально с помощью Eclipse jar, как сделал бы Дженкинс, и проверил, что в него также включена правильная версия ресурса. Также тестовое рабочее пространство очищается после каждого запуска Jenkins.

Я в растерянности, как убедиться, что он всегда выбирает последнюю версию файла. Есть ли альтернативный метод, который я пропустил? Это какая-то странная проблема с кешем, о которой я не знаю?

1 Ответ

0 голосов
/ 10 июля 2018

Проект checker был лишь одной из зависимостей более крупного проекта.

Я обнаружил, что более старая версия разыскиваемого ресурса произошла из другой зависимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...