Делаю библиотечку доступа к БД, которая будет лазить в базу и выдавать Java-объекты в нужном мне виде. Библиотеку компилирую в JAR, потом импортирую в проект и использую.
Делаю на Hibernate. Соответственно, есть файл hibernate.cfg.xml, в котором ссылки, пароли и пр. Естественно, хочу чтобы этот файл был не внутри JAR, а отдельно.
Вопрос: как это сделать?
Спасибо, но не помогло. Во всех статьях речь о вэб-приложении, а у меня "обычное". Понятно что это "почти то же самое", но везде объяснение начинается с середины, когда вся структура проекта уже создана. Но у меня она другая, поэтому ни фига не понятно :)
В итоге разобрался сам. У кого такой же вопрос - вот решение:
- где-то у вас есть строчка
Configuration configuration = new Configuration().configure();
)
Когда аргумент метода configure() пустой, по умолчанию берётся конфиг-файл resources/hibernate.cfg.xml . Но туда можно передать параметр (см. Ctrl + клик на метод), а именно:
String resource
URL url
File configFile
Я использовал вариант с File:
File hibernateConfigFile = new File("config/hibernate.cfg.xml");
//...
Configuration configuration = new Configuration().configure(hibernateConfigFile);
Это относительный путь относительно Working Directory. Естественно, путь можно задать любым подходящим способом.