Настройка maven pom для работы с зависимостями в разных средах - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть проекты Java a-1.0.jar с ojdbc.jar зависимостью и b.jar, которая зависит от a-1.0.jar и ojdbc.jar.Я пытаюсь заставить его работать на моей машине, новой машине пользователя и сервере Bamboo.

Желаемое поведение:
На локальном компьютере git clone <git_url>, mvn clean install, java -jar b.jar проект должен быть запущен.Bamboo должен оформить заказ и запустить проект.
На Bamboo: план может проверить проект и запустить его.Сборка должна отслеживать версию b.jar встроенного и a.jar используемого.

До сих пор я видел следующие опции:
<systemPath>${project.basedir}/lib/a-1.0.jar</systemPath>: maven предупреждает, что не удастся разрешить зависимости
Скрипт Perl для запуска mvn install для каждого зависимого jar перед сборкой проекта
(1) побеждает цель автоматизации DevOps
(2) неясно, какая версия баночки использовалась
(3) устанавливает банку, но java -jar b.jar не удается a.jar отсутствует

Я могу преодолеть это с помощью другого сценария Perl, который добавляет зависимые файлы jar в путь к классам

Это базовые задачи, и как инструмент сборки Maven должен это делать.

Как рассказать Maven о трех целях ниже?
(1) Для каждого неизвестного импорта - получить банку из папки lib
(2) Создайте набор зависимых банок.То есть не импортировать ojdbc дважды
(3) Упаковать самодостаточную банку, которая запускается, а не дает сбой с "мелочи отсутствуют"

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Попробуйте плагин non-maven-jar-maven.Он добавляет банки, которые не находятся в центральной части Maven.

0 голосов
/ 21 сентября 2018

Похоже, вам нужно создать исполняемый файл jar - и для этого вы можете использовать различные подходы.

Один из них, добавить maven-shade-plugin , который помещает все зависимостив одну банку, заботясь о потенциальных ресурсных коллизиях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...