Classloader.getResources () в проекте maven возвращает пустое перечисление - PullRequest
2 голосов
/ 30 декабря 2011

У меня есть код, который получает ресурсы следующим образом:

public static final String CONVERTER_FILE = "META-INF/jumbo-converters";
static {
        ClassLoader ldr = Thread.currentThread().getContextClassLoader();
        Enumeration<URL> e = ldr.getResources(CONVERTER_FILE);

но когда я запускаю это в тесте JUnit (Java 6), перечисление пусто. В проекте есть ряд подпроектов, имеющих следующий файл:

myProject/mySubProject/src/main/resources/META-INF/jumbo-converters

и я считаю, что это работало в прошлом. Что делает getResources? и как я могу отладить его текущий сбой?

Ответы [ 2 ]

2 голосов
/ 30 декабря 2011

Чтобы загрузить файл с помощью ClassLoader.getResources(), он должен быть найден в вашем пути к классам. Решением было бы убедиться, что родительская папка для META-INF находится в пути к классам.

1 голос
/ 31 декабря 2011

Ресурсы для модуля (подпроекта) не будут добавлены в путь к классам агрегирующего проекта, если агрегирующий проект не зависит от модуля.Быть модулем для проекта не устанавливает отношения зависимости ни в одном направлении.

В приведенном выше случае вы должны добавить зависимость от mySubProject в myProject.Таким образом, myProject зависит от mySubProject.

...