Проект Maven с собственной зависимостью и копированием файлов

У меня есть следующий сценарий:

mylib - это библиотека (для которой у меня есть исходные коды, поэтому я хотел бы поместить их в проект Maven mylib: mylib например).Эта библиотека имеет зависимость от jar, для которой у меня есть только jar, и ее нет в репозитории Maven (и я тоже НЕ хочу устанавливать ее там). Чтобы его скомпилировать, можно сделать что-то вроде этого: добавьте файл jar в проект mylib в папку "lib", например "lib / thirdpartylib.jar" и в pom.xml mylib добавьте зависимость с самостоятельно выбранной группой / артефактом / версией и " system $ {project.basedir} / lib / thirdpartylib.jar "запись. Проект 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 исполняемой виртуальной машины).

Любые предложения приветствуются!

6
задан NameZero912 22 September 2011 в 13:28
поделиться