Как сделать проект maven готовым для заказчика - PullRequest
1 голос
/ 29 июля 2011

У нас есть проект, который должен быть реализован клиентом с использованием maven.У него есть некоторые открытые зависимости (mavenized) (без проблем), некоторые не mavenized, проприетарные вещи (драйвер oracle jdbc) и некоторые внутренние вещи.

До сих пор все, кроме первой категории, упаковывалось вместе с самим проектом в локальный репозиторий (репозиторий с file: // path-in-project-folder, указанным в проектах pom.xml).

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

Какова наилучшая практика, чтобы сделать такие зависимости / репозитории maven доступными для клиента, чтобы он мог продолжать строить проект.

Идеи такfar:

  • Клиент также настраивает хранилище nexus, мы каким-то образом разворачиваем все эти непубличные зависимости в его хранилище (например, зеркало)
  • Мы предоставляем «тупой» дамп/ снимок непубличных зависимостей, клиент добавляет этот снимок в этот файл settings.xml в качестве хранилища (но как это возможно).
  • Сделайте наше внутреннее хранилище Nexus доступным для сервера сборки клиентов (невариант в нашем случае)

Мне интересно, как другие решают эти проблемы.

Спасибо!

Ответы [ 2 ]

1 голос
/ 29 июля 2011

Конечно, размещение какого-либо репозитория является простым вариантом, при условии, что вы можете удовлетворить требования по времени безотказной работы / пропускной способности / аутентификации.

Если вы хотите отправить физические артефакты, вы будетеэтот шаблон будет полезен: https://brettporter.wordpress.com/2009/06/10/a-maven-friendly-pattern-for-storing-dependencies-in-version-control/

Это зависит от того, какое хранилище создается в системе управления версиями - если вы хотите, чтобы проект создавал хранилище, рассмотрите что-то вроде: http://svn.apache.org/viewvc/incubator/npanday/trunk/dist/npanday-repository-builder/pom.xml?revision=1139488&view=markup (используя плагин сборкивозможность создания хранилища.)

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

0 голосов
/ 29 июля 2011

Есть два варианта:

  1. Документируйте, какие именно артефакты вам нужны для компиляции, а какие нет. доступно через Maven Central
  2. Внедрите Nexus и сделайте экспорт с Nexus, чтобы получить экспорт клиенту, и они должны сделать импорт этого. Я не уверен если вы приходите к вопросам лицензий.

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

...