У меня есть следующий сценарий:
mylib - это библиотека (для которой у меня есть исходные коды, поэтому я хотел бы поместить их в проект Maven mylib: mylib например).Эта библиотека имеет зависимость от jar, для которой у меня есть только jar, и ее нет в репозитории Maven (и я тоже НЕ хочу устанавливать ее там). Чтобы его скомпилировать, можно сделать что-то вроде этого: добавьте файл jar в проект mylib в папку "lib", например "lib / thirdpartylib.jar" и в pom.xml mylib добавьте зависимость с самостоятельно выбранной группой / артефактом / версией и "
"запись. Проект mylib отлично скомпилируется.
Обратите внимание, что mylib также зависит от DLL-файла во время выполнения, например, thirdparty.dll. Но для компиляции это не важно.
Однако теперь мне интересно, как достичь следующего:
Любые другие проекты, например для проекта «X», который использует mylib, потребуется
- mylib.jar
- thirdpartylib.jar
- thirdpartylib.dll
,
, и ему нужно будет установить путь java.library.path к каталогу (например, «.») так, чтобы сторонние jar и dll обнаруживаются исполняющейся виртуальной машиной.
Меня беспокоит следующее: я бы хотел, чтобы сторонние jar / dll-файлы находились в ведении проекта mylib. Т.е. Я хочу определить знание, что вам нужно скопировать стороннюю jar и dll в целевую папку и что java.library.path ссылается на них, чтобы быть частью проекта mylib (mylib pom знает, как это должно быть используется в других проектах). Тем не менее, я хочу, чтобы эти знания (т.е. инструкции копирования, независимо от того, как они в точности выполняются в Maven) были транзитивно переданы в любой другой проект, использующий mylib, например, X.Возможно ли это каким-то образом?
[Моим хакерским решением на данный момент было бы то, что у меня есть копия сторонних вещей в X, но даже тогда я не знаю, как скопировать / иметь дело с файлом dll, поэтому мне пришлось бы написать файл readme, в котором говорилось, что файл dll должен быть скопирован в папку bin исполняемой виртуальной машины).
Любые предложения приветствуются!