У меня есть проект maven, и я использую nativedependencies-maven-plugin
(https://github.com/fmarot/nativedependencies-maven) для управления DLL.
DLL от стороннего производителя и имеет следующую структуру. Допустим, чтоимя файла JAR - abc.jar
, а соответствующая DLL - abcxyz.dll
, где xyz - номер версии без периодов. Поэтому, если версия 12.6.1, библиотека DLL называется abc1261.dll
. Если сторонняя версия обновляетсяих продукт до версии 12.7.0, они выпускают новый JAR abc.jar
и новую DLL abc1270.dll
.
Я храню JAR в локальном репозитории, и имя JAR, как отражено вв этом случае хранилище - abc-x.y.z.jar
. Я помещаю классификатор в DLL с именем natives-abc
, а имя библиотеки DLL в хранилище (после развертывания) - abc-x.y.z-natives-abc.dll
. Когда я собираю проект, abc-x.y.z-natives-abc.dll
затем правильно копируетсяв папку target/natives
с помощью nativedependencies-maven-plugin
.
Когда я запускаю проект из Eclipse, он не работает, потому что JAR ищет abcxyz.dll
, а не abc-x.y.z-natives-abc.dll
. Если я копирую abc-x.y.z-natives-abc.dll
в abcxyz.dll
в папке target/natives
, тогда все работает, так что я знаюна java.library.path
устанавливается правильно, что я также проверил, проверив процесс с помощью инструмента jinfo
.
Мне нужно, чтобы DLL была переименована после ее копирования из локального репозитория.в target/natives
.Я не могу понять, как заставить maven делать это.
Я хочу иметь разные версии abc.jar
и abcxyz.dll
в локальном хранилище, а затем просто изменить теги <version>
в файле pom.xml
для ссылки на разные версии.Имя файла JAR при развертывании не имеет значения, но его имя связано с DLL, потому что файл JAR стороннего производителя для определенной версии ищет определенное имя DLL, соответствующее версии.