Отключить центральный repository Maven

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

Другими словами, я не хочу, чтобы Maven пытался загружать файлы из центра.

Я знаю, как настроить локальный repository (в сети или нет), моя идея использует «благословенный» компьютер для обновления локального репозитория.

PS: Я мог блокировать запросы на уровне прокси / сети, но я спрашиваю, как это сделать с конфигурацией Maven.

ОБНОВЛЕНИЕ Я, наконец, понял, как это сделать. В доме maven в каталоге conf находится глобальный settings.xml . Вы можете либо установить зеркало в central что указывает на некоторый внутренний сервер, либо просто переопределить его определение.

Согласовано. Никакие прямые загрузки из внешних репозиториев не должны допускаться в ваших выпусках.

Конкретный ответ на ваш вопрос – вторая часть моего ответа 🙂

Настройка диспетчера хранилища

Я бы рекомендовал настроить локальный менеджер хранилища Maven. Хорошие варианты:

  • нексус
  • Artifactory
  • Archiva

Все они способны выступать в качестве кэширующего прокси-сервера для внешних доступных центральных банок Maven.

Вы также можете быть заинтересованы в профессиональной версии Nexus. Он включает в себя набор « Закупки» для управления внешними библиотеками. Он также предоставляет плагины Maven для централизованного управления файлом настроек Maven, который является второй частью моего ответа …

Настройки локального Maven

Обновите файл настроек, расположенный в следующем каталоге:

$ HOME / .m2 / settings.xml

Укажите, что все центральные запросы должны быть перенаправлены в локальный repository Maven:

  ...   central-proxy Local proxy of central repo http:///central central   ...  

Я нашел страницу « Конфигурирование артефактов» полезной. В нем говорится следующее о «зеркальном отображении».

Не используйте «зеркало любого» самостоятельно, как свое единственное правило разрешения. Используйте его для обеспечения того, чтобы любое разрешение артефактов производилось строго через Artifactory. Конфигурация проксирования «зеркало любой» работает для определенных репозиториев. Он будет заменять, но не скрывать, встроенные центральные и хранилища снимков, если только они не будут отменены пользователем. Он определяет правило крупнозернистого проксирования, которое не различает выпуски и моментальные снимки, и полагается на определенные репозитории для выполнения этой фильтрации разрешения.

Super POM of Maven определяет центральный repository. Вот как вы можете переопределить центральный repository и плагин-repository для выпусков и моментальных снимков:

   central http://repo1.maven.org/maven2  false   false      central http://repo1.maven.org/maven2  false   false    

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

В случае репозитория всей компании, который должен обрабатывать все и каждый запрос артефакта, вы можете настроить один repository, чтобы отразить все в вашем $MAVEN_HOME/conf/settings.xml :

  internal-repository Maven Repository Manager running on repo.mycompany.com http://repo.mycompany.com/proxy *  

Источник

Самый простой способ – использовать параметр -o, который сообщает maven работать в автономном режиме. Конечно, вам нужно будет обеспечить, чтобы у вашего местного репо было все, что вам нужно, но это, по крайней мере, устраняет любые проблемы безопасности, которые могут возникнуть при автоматическом подключении к несанкционированному репо.

Похоже, что кто-то активно пытается применить политику управления Open Source. Приятно слышать.

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

Как замечает Рори, вы должны убедиться, что у вас есть все необходимое в этом репозитории, прежде чем прекратить доступ к Maven Central (Центральный repository) или к любому другому публичному репозиторию с открытым исходным кодом.

Марк делает хороший вывод о возможностях закупок Nexus. После того как этот внутренний менеджер репо настроен со всеми вашими «одобренными» компонентами, вы также можете включить функцию проверки работоспособности Nexus Repository (она бесплатна), которая сообщает обо всех лицензиях компонентов, известных уязвимостях безопасности и т. Д. Для компонентов в ваших репозиториях.

Полное раскрытие, я работаю на Sonatype.

В прошлом я обнаружил, что наиболее надежным решением является ручное переопределение встроенных репозиториев. Я нашел этот подход лучше, чем изменение родительских POM, settings.xml, зеркал или профилей. Для всех внутренних проектов, помещенных ниже настроек в их POM.

   central http://internalrepo  false    snapshots http://internalrepo  false      central http://internalrepo  false    snapshots http://internalrepo  false    

У меня была такая же проблема, но с другой причиной. Решение заключалось в том, чтобы отключить защиту браузера Avira (в немецком браузере-Шутце). Я принял решение с m2e не может передавать метаданные из nexus, но maven командной строки .

  • Как настроить 2 навигации в zf2?
  • Есть ли способ указать class реализации Doctrine2 Entitymanager в Symfony2?
  • Как импортировать Java-config-class в XML-config, чтобы оба контекста имели компоненты?
  • Различия в производительности между assemblyми отладки и выпуска
  • Создание нескольких разделов HTTP в Spring Security Конфигурация Java
  • Как выбрать другой app.config для нескольких конфигураций сборки
  • Spring Java Config vs Jboss 7
  • Что я должен установить JAVA_HOME на OSX
  • Как использовать общие свойства для нескольких проектов maven?
  • Как правильно инициализировать log4j?
  • Конфигурация DI vs xml на основе аннотаций Spring?
  • Давайте будем гением компьютера.