В одном из моих проектов у меня есть ресурсы, хранящиеся в /src/test/resources
(типичная структура каталога maven). Эти ресурсы используются классом утилиты, хранящимся в проекте.
Сам класс утилиты используется из других проектов (другие проекты зависят от этого). Я бы получил доступ к ресурсу:
final InputStream inputStreamDobs =
ClassLoader.class.getResourceAsStream("/dbunit/clear_db.xml");
но поскольку я использую его из разных проектов, путь неверен - он относится к current project that is being built/tested
, а не к классу утилиты и ресурсам.
Любая мысль о том, как подойти к этому?
Мне нужно избегать абсолютных путей - хотелось бы иметь способ определения относительного пути к классу утилиты.
Я также не хочу реплицировать ресурсы по нескольким проектам. Приветствия.
EDIT: Чтобы дать контекст, у меня есть определение таблиц в XML файле, которые нужно очистить после тестов интеграции (очистить всю схему БД). Тесты интеграции находятся в нескольких проектах, но прозрачный script и файл ресурсов одинаковы для всех из них и находятся в общем родительском проекте.
EDIT2:
Бонусный вопрос: Я хотел бы получить доступ к общему файлу DTD (позвоните ему tables.dtd
), который должен быть доступен из XML файлов из нескольких других проектов. (он будет находиться в общем исходном проекте).
В настоящее время я дублировал несколько проектов, и я ссылаюсь на него из XML с помощью директивы:
<!DOCTYPE dataset SYSTEM "src/test/resources/dbunit/dobs.dtd">
Как указать его в файл в другом проекте?