Установить сторонние библиотеки с транзитивными зависимостями / деревом зависимостей? - PullRequest
2 голосов
/ 11 января 2012

Я новичок в Maven и потратил часы на изучение основ, но я до сих пор не нашел хорошей документации о том, как локально установить сторонний JAR со всеми (переходными) зависимостями.

Я знаю, mvn install:install-file устанавливает один JAR. Но как установить локально в хранилище что-то вроде этого:

+ Parent.jar
  + ChildA.jar (Requuired by Parent)
    + ChildB.jar (Required by Child A)

Чтобы сделать его более сложным и реальным: Parent.jar и ChildA.jar являются устаревшими / коммерческими Jar-файлами, недоступными в общедоступном репозитории maven, но Child B - это jar-файл, который можно найти в общедоступном репозитории баночка для журналов).

ОБНОВЛЕНИЕ: я хочу не только установить их локально (с системной зависимостью), но и "правильно" интегрировать их с maven, чтобы я мог перераспределить это дерево зависимостей другим разработчикам или общественности (и я предполагаю, что это важно для maven), чтобы maven знал и понимал зависимое дерево (чтобы избежать конфликтов версий, ненужных загрузок и т. д.) *

Любые ссылки или информация о том, как эта точность описывает, как это можно сделать, было бы замечательно.

Большое спасибо !! Marks

Ответы [ 4 ]

1 голос
/ 11 января 2012

Если это коммерческий файл, вы можете нарушать условия лицензии, если развертываете ее в центральном хранилище, и единственным выходом является развертывание в репо вашей компании (если у вас есть одна установка).

Для этого вам нужно определить pom для childA, указав в качестве зависимости childB, а затем выполнить для этого цель install: install-file.Затем сделайте то же самое для родителя, с childA как с зависимостью.

Как только вы это сделаете, вы можете взять эти предметы и довольно легко загрузить их в центральное хранилище вашей компании через графический интерфейс (поддержка Nexus и Artifactory).это через GUI).

1 голос
/ 11 января 2012

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

Ниже приведены инструкции о том, как этого добиться.

Обратите внимание, однако, что лицензирование кода может не позволить вам опубликовать его в центральном репо.Это проверяется, прежде чем он может быть развернут.

0 голосов
/ 11 января 2012

, если вам нужно установить его в локальный репозиторий Maven, просто используйте

mvn dependency:go-offline
0 голосов
/ 11 января 2012

Я думаю, вы можете искать это .

Maven загрузит все необходимые зависимости в само локальное репо, если они доступны в онлайн-репо. Если вы хотите установить свои собственные проекты, настройте реактор с профилями, чтобы в нем были все нужные модули, и запустите на нем mvn install -P yourprofile. Подробнее о профилях можно узнать здесь . У Afaik нет возможности установить проекты, включая их зависимости, в локальный репозиторий.

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