в моем проекте J2EE у меня есть пара зависимостей, которые недоступны ни в одном репозитории Maven, потому что это проприетарные библиотеки. Эти библиотеки должны быть доступны во время выполнения, поэтому их нужно скопировать в целевой /.../ WEB-INF / lib ...
Прямо сейчас я перечисляю их как системные зависимости в моем POM, но с этим методом проблема в том, что они не копируются в целевую сборку во время компиляции. К тому же этот метод не очень элегантен.
Итак, как лучше всего интегрировать их в Maven?
Примечание: я не хочу создавать собственный репозиторий Maven.
java
maven-2
build-process
Самсон
источник
источник
Ответы:
Как вы сказали, вы не хотите создавать собственный репозиторий, возможно, это поможет.
Вы можете использовать цель install-file maven-install-plugin для установки файла в локальный репозиторий. Если вы создадите сценарий с вызовом Maven для каждого файла и сохраните его рядом с банками, вы (и любой другой, у кого есть доступ) можете легко установить банки (и связанные файлы pom) в свой локальный репозиторий.
Например:
или просто
Затем вы можете ссылаться на зависимости как обычно в своем проекте.
Однако лучше всего настроить внутренний удаленный репозиторий, и я бы рекомендовал использовать Nexus самостоятельно. При необходимости он может работать на вашем компьютере для разработки, а накладные расходы минимальны.
источник
Для людей, желающих быстро решить эту проблему:
просто дайте вашей библиотеке уникальный идентификатор группы и имя артефакта и укажите, где он находится в файловой системе. Тебе хорошо идти.
Конечно, это грязное быстрое исправление, которое будет работать ТОЛЬКО на вашем компьютере, и если вы не измените путь к библиотекам. Но иногда это все, что вам нужно, - запустить и провести несколько тестов.
РЕДАКТИРОВАТЬ: просто переформулируйте вопрос и понял, что пользователь уже использовал мое решение в качестве временного исправления. Я оставлю свой ответ, чтобы быстро помочь другим, кто придет к этому вопросу. Если кто-то не согласен с этим, оставьте мне комментарий. :)
источник
Создайте папку репозитория под вашим проектом. Давайте принимать
Затем установите свой собственный jar в это репо:
Наконец, добавьте в проекты pom.xml следующие определения репозиториев и зависимостей:
источник
/
(т.е. указывает на папку), то репо создается с groupId. Пример: если идентификатор группыfoo.com
и localRepositoryPath равенrepo
, тогда папка репо становитсяrepo.foo.com
.Вам необходимо создать локальный репозиторий, в котором будут размещаться такие библиотеки. Есть ряд проектов, которые делают именно это. Например Artifactory .
источник
Ни одно из решений не работает, если вы используете сборку Jenkins !! Когда pom запускается на сервере сборки Jenkins .. эти решения не работают, поскольку Jenkins запускает pom будет пытаться загрузить эти файлы из корпоративного репозитория.
Скопируйте jar-файлы в src / main / resources / lib (создайте папку lib). Они будут частью вашего проекта и будут идти до сервера развертывания. На сервере развертывания убедитесь, что ваши сценарии запуска содержат src / main / resources / lib / * в пути к классам. Альт.
источник
вы можете установить их в частном локальном репозитории (например, .m2 / repository в вашем домашнем каталоге): подробнее здесь
источник
Если я хорошо понимаю, если вы хотите экспортировать зависимости на этапе компиляции, чтобы не было необходимости извлекать вручную каждую необходимую библиотеку, вы можете использовать mojo copy-dependencies .
Надеюсь, это может быть полезно в вашем случае ( примеры )
источник
Решение @Ric Jafe - это то, что сработало для меня.
Это именно то, что я искал. Способ протолкнуть его для исследования тестового кода. Ничего особенного. Да, я знаю, что все они говорят :) Различные решения плагинов maven кажутся излишними для моих целей. У меня есть несколько банок, которые были предоставлены мне как сторонние библиотеки с файлом pom. Я хочу, чтобы он быстро компилировался / запускался. Это решение, которое я тривиально адаптировал для Python, творило для меня чудеса. Вырезал и вставил в мою помпону. Код Python / Perl для этой задачи находится в этом разделе вопросов и ответов: Могу ли я добавить jar-файлы в путь к классам сборки maven 2 без их установки?
источник
Продолжайте использовать их как системные зависимости и скопируйте их в целевой /.../ WEB-INF / lib ... с помощью плагина зависимостей Maven:
http://maven.apache.org/plugins/maven-dependency-plugin/examples/copying-artifacts.html
источник
Самостоятельная установка не сработала для меня.
источник