Как я могу протолкнуть большое дерево зависимостей с maven central на локальный сервер Archiva?

Таким образом, компания, в которой я работаю, имеет брандмауэры на наших серверах сборки, что означает, что они могут получить доступ только к нашему внутреннему maven-серверу Archiva. Насколько мне известно, этот сервер также отключен от брандмауэра и не может напрямую получать контент из центра maven.

Итак, что люди делают, если им нужна определенная библиотека, они получают pom.xml, jar и другие зависимости от maven central и загружают их на наш сервер Archiva через веб-интерфейс.

Этого достаточно для относительно небольших библиотек с максимум одной или двумя зависимостями, но очень утомительно для чего-то большого, например Eclipse Aether, которое мне нужно в данный момент.

Итак, у меня вопрос: есть ли способ перенести все данные с maven central на мою локальную машину, а затем отправить их обратно на сервер Archiva моей компании?

Прошу прощения, если это довольно глупый вопрос; Я не очень хорошо знаком с загрузкой материалов в Maven, и никто из моих коллег вообще не понимает, о чем я говорю (многие любят коммитить jar-файлы прямо в наше репо вздох).

Спасибо!


person Ownaginatious    schedule 08.12.2014    source источник
comment
Это совсем не глупый вопрос! У меня почти такая же проблема в моем текущем проекте, и я не нашел простого решения прямо сейчас ... мое предлагаемое в настоящее время решение - это настраиваемый плагин maven, который вытолкнет все отсутствующие артефакты (путем перехода по локальному ~ / .m2 иерархия) в некоторый репозиторий Maven. К сожалению, этот плагин не будет доступен для широкой публики, поэтому я был бы рад услышать решение, использующее готовые компоненты ...   -  person Gyro Gearless    schedule 09.12.2014
comment
Это то, что вы ищете stackoverflow.com/a/1776544/668951   -  person Atul    schedule 09.12.2014


Ответы (1)


Извините, это будет не настоящий ответ, но он также не подходит для комментария :)

Вкратце: поговорите с ребятами из брандмауэра. Нет смысла бездельничать и тратить часы и дни на работу. Рано или поздно вы получите копию maven central. А это им тоже может не захотеться.

Часто разработчикам не разрешается подключаться к maven central. Но это немного параноик. Даже те компании, которые копируют банку за банкой, не могут проверить, что скопированная ими банка вручную не содержит атомной бомбы.

Есть несколько вариантов:

Используйте цель dependency: go-offline: http://maven.apache.org/plugins/maven-dependency-plugin/go-offline-mojo.html

это загрузит все зависимости и плагины. Также выполняйте цели для вашей сборки. В результате в вашем локальном репозитории появятся необходимые артефакты. Я не знаю, что умеет Archiva. Возможно, произошел импорт структуры папок. Кажется, у них разные форматы хранения (файл, кролик, кассандра) для репозиториев. Может быть, файл был бы вариантом. В репозитории Sonatype Nexus все хранится в файлах. Таким образом, вы можете просто скопировать свой локальный репозиторий в один из управляемых, обновить кеш и готово. (или отложите нексус в сторону архива и отразите его таким образом)

В любом случае вам нужен где-то доступ к maven central. Обычно люди делают это дома и берут с собой USB-накопитель ... что не имеет смысла.

Поговорите с брандмауэром, чтобы позволить архиву подключаться к maven central и, возможно, к ibiblio и jboss-репозиториям. Это сэкономит много времени.

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

Версия nexus pro (немного дорогая) содержит какую-то функцию анализа, чтобы увидеть, есть ли известные проблемы безопасности внутри используемых jar-файлов. Если это успокаивает людей. Ценник может вернуть их обратно.

Это было бы моим предложением: каждому разработчику разрешено подключаться к вашему архиву (mirrorOf = *) - как своего рода согласие с политиками / ограничениями. Серверу archiva разрешено подключаться к миру (только центральный, jboss-repo, ibiblio). Таким образом, у вас будет полный контроль над происходящим, а разработчики смогут свободно передвигаться. Если они пойдут в неправильном направлении, вы заметите это в обзоре (который содержит зависимости) или в действиях на прокси-сервере maven.

Раньше можно было зеркалировать maven central с помощью rsync. Но я перестал думать об этом много лет назад. Это просто пустая трата времени.

Не стоит недооценивать время, необходимое для добавления зависимостей к прокси. Это простая задача - да, но на нее уходит очень много времени. Если брандмауэры захотят за это заплатить: пусть будет так. Но не ошибайтесь с цифрами: вам нужно, чтобы кто-то добавлял файлы, а пока это происходит, другие ждут его. Деньги из окна. Поэтому люди будут писать сценарии, копирующие зависимости в локальные репозитории. Что означает: никакого контроля над происходящим. Это также было одной из причин использования прокси-сервера репозитория.

Maven Central можно использовать.

Надеюсь, вы сможете найти разумное решение :)

person wemu    schedule 09.12.2014
comment
Я полностью согласен со всем, что вы говорите! Я собираюсь попытаться обсудить это с ответственным лицом, потому что это смешно. Ты прав; никто не проверяет код до уровня, на котором кто-то может обнаружить подозрительный пакет, исходящий из maven central. Тот, кто решил не подключать наш сервер Archiva к maven central, также является тем же человеком / людьми, которые решили блокировать исходящие подключения к чему-либо, кроме 80 и 443, было отличной идеей ... что очень легко обойти вирусу / ошибке, но просто огромная заноза в заднице для всех разработчиков. - person Ownaginatious; 09.12.2014
comment
Надеюсь, у вас получится решить эту проблему :) Обычно разработчики и офисные работники (так сказать нормальные люди) смешиваются в сети. но у этих двух групп разные требования. Так что к ним нужно относиться по-другому. Я видел, что компании вводят VLAN (виртуальные ланы) на основе MAC-адресов, чтобы не тратить время друг на друга. Безопасность - это серьезная проблема, как и эффективность. Йода будет надеяться, что кто-то уравновесит силы: D - person wemu; 10.12.2014