У меня есть проекты 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) Упаковать самодостаточную банку, которая запускается, а не дает сбой с "мелочи отсутствуют"