В новых выпусках эта функция помечена как устаревшая, но все еще работает и пока не удалена (вы просто видите предупреждение в журнале при запуске maven). В группе maven по этому поводу поднят вопрос https://issues.apache.org/jira/browse/MNG-6523 (Вы можете принять участие и описать, почему эта функция полезна в некоторых случаях). Я надеюсь, что эта функция останется там!
Если вы спрашиваете меня, пока функция не удалена, я использую это, чтобы создать зависимость только от одного непослушного jar-файла в моем проекте, который не помещается в репозиторий. Если эта функция будет удалена, что ж, здесь есть много хороших ответов, которые я смогу выбрать позже!
Ответ 2
Установите JAR в свой локальный репозиторий Maven (обычно .m2 в свою домашнюю папку) следующим образом:
Во-первых, я хотел бы отдать должное за этот ответ анонимному пользователю Stack Overflow - я почти уверен, что видел подобный ответ здесь раньше - но теперь я не могу его найти.
Лучший вариант использования локальных файлов JAR в качестве зависимости - создать локальный репозиторий Maven. Такой репозиторий представляет собой не что иное, как правильную структуру каталогов с файлами pom в нем.
Для моего примера: у меня есть мой главный проект в ${master_project} location и включен subproject1 ${master_project}/${subproject1}.
Затем я создаю репозиторий Maven в: ${master_project}/local-maven-repo.
В файле pom в subproject1, расположенном по адресу ${master_project}/${subproject1}/pom.xml, необходимо указать репозиторий, который будет принимать путь к файлу в качестве параметра URL:
Зависимость может быть указана как для любого другого репозитория. Это делает ваш репозиторий pom независимым. Например, как только желаемый JAR станет доступен в Maven central, вам просто нужно удалить его из вашего локального репозитория, и он будет извлечен из репозитория по умолчанию.
Последнее, но не менее важное, что нужно сделать, это добавить файл JAR в локальный репозиторий, используя переключатель -DlocalRepositoryPath, например:
После установки файла JAR ваше репозиторий Maven может быть передано в репозиторий кода, и вся настройка не зависит от системы. (Рабочий пример в GitHub).
Я согласен, что привязка JAR к репозиторию исходного кода не является хорошей практикой, но в реальной жизни быстрые и грязные решения иногда лучше, чем полноценное репозиторий Nexus для размещения одного JAR, который вы не можете опубликовать.
Ответ 4
Создайте новую папку, скажем, local-maven-repo в корне вашего проекта Maven.
Просто добавьте локальный репозиторий внутри вашего <project> из вашего pom.xml: