предисловие
В разработке Java EE мы используем инструмент сборки Maven в основном для управления зависимостями сторонних библиотек проекта, а также зависимостями других сервисов проекта внутри компании. Поэтому частный сервер Maven является неотъемлемой частью.В этой статье в основном представлены три аспекта частного сервера Maven:
- Что такое частный сервер Maven
- Как собрать частный сервер Maven
- Как использовать частный сервер Maven
Читатели этой статьи должны иметь опыт использования Maven и понимать некоторые основные концепции Maven.Если вы не знакомы с ним, вы можете обратиться к справочным материалам в конце статьи, чтобы узнать больше.
Что такое частный сервер Maven
Прежде чем представить частный сервер Maven, давайте сначала разберемся, что такое репозиторий Maven.
Репозиторий Maven: Maven единообразно хранит все зависимости проекта Maven, плагины и загруженные проекты.
И репозитории Maven тоже делятся на две категории: локальные репозитории и удаленные репозитории.
- Локальный склад, то есть после установки Maven на наш локальный компьютер, в конфигурационном файле settings.xml В
localRepository
Папка, в которой нужно указать каталог. - Удаленное хранилище — это сервер, предназначенный для хранения библиотек Java, плагинов Maven и т. д. с заданным URL-адресом во внешней сети (в том числе в локальной сети).Например, центральное хранилище — это типичное удаленное хранилище, которое содержит большинство библиотек Java с открытым исходным кодом в мире. , есть много других общедоступных библиотек, таких как
Частный сервер, упомянутый в этой статье, представляет собой еще одно специальное удаленное хранилище.Он обычно настраивается на сервере в локальной сети, чтобы выступать в качестве прокси для всех внешних удаленных складов и может принимать загрузку и получение внутренних проектов.
И для чего эти склады? Когда проект Maven должен зависеть от библиотек Java некоторых других проектов, Maven сначала ищет в локальном хранилище.Если соответствующая библиотека существует, она будет использоваться напрямую; если локальное хранилище не существует, Maven перейдет к удаленном хранилище, чтобы найти соответствующую библиотеку Java.Затем загрузите ее на локальное хранилище, а затем используйте ее, чтобы в следующий раз, когда вам понадобится библиотека Java, вы могли напрямую использовать библиотеку зависимостей, кэшированную в локальном хранилище, что экономит время многократный поиск и загрузка по сети.Тот же процесс используется и для подключаемого модуля Maven.
Обычно центральное хранилище является удаленным хранилищем Maven по умолчанию, а при введении частного сервера, когда поиск локального хранилища заканчивается, а требуемая библиотека зависимостей не найдена, поиск начинается с хранилища частного сервера. нашли, перейдите на центральный склад. Поиск склада, конкретный процесс может относиться к следующему рисунку:
Здесь мы рассмотрим роль частных серверов:
- Доступ к интрасети, экономия пропускной способности экстрасети.
- После загрузки из внешней сети все пользователи внутренней сети могут загружать только кэш частного сервера, что ускоряет построение проектов Maven.
- Позволяет загружать и скачивать частные библиотеки и не имеет доступа извне, что более безопасно.
- Уменьшите внешние сетевые факторы и обеспечьте стабильность строительства проекта.
- Облегчает ссылки на зависимости внутренних служб проекта, не требуя полного исходного кода других проектов.
Вот подробное описание функции последнего маленького пункта: когда у нас есть два независимых проекта Maven, таких как проект службы заказа и проект службы членства, проект службы заказа требует службы членства, а пакет API, который зависит от доступ к службе членства можно получить через частные серверы.Загрузите скомпилированный пакет API службы членства, а затем программа службы заказа может напрямую загрузить и ссылаться на пакет API службы членства на частном сервере, так что нет необходимости импортируйте код проекта службы членства, и вам не нужно заботиться о конкретной реализации службы членства, которая играет внутреннюю роль.Роль легкой ссылки на элементы службы, описание можно увидеть на следующем рисунке.
Собрать частный сервер Maven
Разобравшись с частным сервером Maven, давайте продолжим. Давайте сначала создадим частный сервер Maven. Здесь мы используем самое популярное программное обеспечение Maven для управления складом с открытым исходным кодом — Nexus, чтобы быстро построить частный сервер Maven.Традиционный способ сборки — загрузить версию Nexus OSS с открытым исходным кодом на официальном сайте Nexus для установки:woohoo.так что type.com/Nexus-repos…Способ Docker для установки Nexus не только быстр и прост, но и требует меньше ресурсов компьютера.
Если вы не знакомы с Docker, вы можете обратиться кБыстро освоить базовые знания Docker за 10 минутНаучиться понимать, просто используя Docker тоже очень просто.
Загрузите образ Nexus
Используйте команду Docker на консоли терминала, чтобы загрузить официальный образ Docker, предоставленный Nexus:
Когда вы увидите результат на рисунке ниже, это означает, что загрузка зеркала завершена, вы можете пройтиdocker images
Проверять.
Запустите контейнер Nexus
Запустите контейнер Nexus с помощью следующей команды:
Вот краткое описание параметров входной команды Docker:
-
-d
Указывает, что контейнер должен работать в фоновом режиме. -
-p 8081:8081
Указывает, что внутренний порт 8081 (последний 8081) открыт при старте контейнера, а 8081 хост-порта маппится, то есть черезlocalhost:8081
Может получить доступ к службам, предоставляемым контейнером Nexus. -
-v /Users/One/Desktop/Nexus/nexus-data:/nexus-data
Указывает, что внутри контейнера/var/nexus-data
Смонтируйте в указанный каталог текущего хоста, следует отметить, что-v
Указанный внешний путь должен быть полным путем. -
--restart=always
Относительно просто, это означает, что при запуске службы докера запускается и контейнер.
После выполнения вышеуказанной команды подождите некоторое время и посетитеhttp://localhost:8081/
, видя соответствующий фон Nexus, означает, что установка приватного сервера завершена, не правда ли, это очень просто?
В процессе запуска контейнера, из-за разных конфигураций машин, запуск может быть медленным, просто терпеливо подождите.
После завершения запуска мы можем просмотреть файлы, созданные при запуске контейнера Nexus, в смонтированном локальном каталоге.
Настроить частный сервер Maven
После того, как приватный сервер установлен, мы сначала авторизуемся, нажимаем кнопку «Войти» в верхнем левом углу страницы, и появится такое же приглашение, как на следующем рисунке:
Объясните, что учетная запись для входа в Nexus по умолчанию — admin, а пароль находится в файле/nexus-data/admin.password
, нам нужно только просмотреть файл в локально сконфигурированном каталоге монтирования.
После ввода пароля учетной записи по умолчанию и успешного входа в систему Nexus принудительно попросит изменить пароль администратора и установить основные права доступа.После завершения он официально войдет в фон частного сервера Nexus.
Вот краткое введение в элементы интерфейса:
- Интерфейс просмотра по умолчанию, вы можете искать и просматривать компоненты хранилища, а также выполнять операции загрузки.
- Он используется для управления конфигурацией программ частного сервера.
- Просмотр информации об учетной записи и разрешение на изменение пароля.
Войдя в интерфейс конфигурации программы частного сервера, нам нужно внести несколько изменений в конфигурацию по умолчанию.
Настройки прокси-пути для центрального склада
Обновите путь прокси-хранилища центрального хранилища в конфигурации частного сервера наОблачное хранилище AlibabaПредоставленный прокси-адрес:maven.aliyun.com/repository/…Это обеспечивает более быстрый доступ к зависимостям и плагинам, необходимым в центральном репозитории.
Создайте новый пользовательский репозиторий
нажмитеCreate repository
, затем выберите тип какmaven2(hosted)
Затем введите имя репозитория private-release и выберите «Выпуск» в столбце политики «Версия», указав, что зависимости хранилища репозитория являются официально выпущенными компонентами, а затем выберите «Разрешить повторное развертывание» в столбце «Политика развертывания», чтобы разрешить развертывание и обновление компонентов на частных серверах.
Наконец, нажмите синюю кнопку -Create repository
После этого вы можете увидеть пользовательский склад в списке складов.С релизным складом мы можем добавить хранилище снимков таким же образом, просто настройте его на Снапшот в столбце Политика версии.
Добавить роль
По умолчанию у Nexus всего две роли:nx-anonymous
иnx-admin
, у первого есть разрешение только на просмотр, у второго есть разрешение администратора, при нормальных обстоятельствах нам также необходимо создать роль для разработчика. нажмитеCreate Role
, добавьте идентификатор роли какdeveloper
и добавлять разрешения только для пользовательских репозиториев, за исключением операций удаления.
После сохранения вновь добавленная роль отобразится в списке.С ролью можно ассоциировать пользователей и назначать права.
Добавить пользователя
Как и в случае с разрешениями, есть только два пользователя по умолчанию:admin
иanonymous
, нам также необходимо создать пользовательский объект, принадлежащий разработчику. нажмитеCreate local user
, введите необходимую информацию, такую как имя пользователя, пароль и т. д., привяжите роль, которую мы создали ранее, и сохраните ее.
После того, как пользователь создан, мы можем войти на частный сервер с новым пользователем и просмотреть содержимое соответствующих разрешений.Например, когда мы входим в систему с новым пользователем, все, что мы можем сделать, это просмотреть и найти пользовательский частный серверный склад.
Таким образом, мы создали собственное хранилище серверов, после завершения настройки разработчики могут использовать его в разработке проекта Maven.
Использовать частный сервер Maven
С частным сервером и учетной записью для разработки нам нужно связать его в локальном файле конфигурации Maven settings.xml.
Задайте информацию об учетной записи сервера:
Установите адрес хранилища частного сервера: (Доступ к этому адресу можно получить через страницу хранилища в бэкэнде Nexus.cpoy
кнопка копируется автоматически)
Развертывание проекта Maven на частном сервере
После завершения настройки мы можем создать проект Maven и попытаться упаковать его на частный сервер Maven. Используйте IDE для быстрого создания проекта Maven, добавьте в файл POMdistributionManagement
node и укажите идентификатор и адрес соответствующего хранилища частных серверов, как показано ниже:
Наконец, просто выполните команду развертыванияmvn clean deploy
Или используйте подключаемый модуль развертывания IDE, когда появится консольBUILD SUCCESS
, когда следующий рисунок похож, развертывание завершено.
Как видно из журнала, все загрузки нашего проекта находятся в репозитории приватных снимков.В настоящее время мы можем просмотреть загруженный jar-файл в репозитории приватных снимков на веб-сайте частного сервера.
Если в процессе развертывания появляется следующее приглашение: with
Access denied to
Это означает, что прав пользователя, настроенных в settings.xml, недостаточно, и jar не может быть развернут на соответствующем хранилище частного сервера.
Следует отметить, что для проекта Maven, если в номере версии проекта есть «SNAPSHOT», это означает, что он в настоящее время находится в версии для разработки, и Maven опубликует его вsnapshotRepository
Узел соответствует адресу. В противном случае Maven считает это релизной сборкой и публикует программу вrepository
по адресу, соответствующему узлу. Поскольку версия примера проекта1.0.0-SNAPSHOT
, поэтому окончательный проект загружается вprivate-snapshot
Под этим репозиторием типа Snapshot.
Затем, если другим проектам нужно полагаться на этот jar, им нужно только ввести соответствующие координаты в свой файл POM.
Разверните сторонний пакет jar на частный сервер Maven
Здесь упоминается сторонний jar-пакет, не упомянутая в обычном порядке библиотека с открытым исходным кодом, а jar-пакет из других сторонних систем.Из-за нужд проекта очень неудобно использовать метод импорта проекта , Лучший способ справиться с этим — вручную загрузить пакет jar сторонней системы на частный сервер Maven, а используемые проекты можно напрямую извлечь из хранилища частного сервера.
Этот метод также более удобен в реализации и может быть разделен на два типа: работа с визуальным интерфейсом и работа с командной строкой.
Работа с визуальным интерфейсом: просто войдите в фон Nexus, у вас должно быть право на загрузку для выполнения операции загрузки, как правило, она управляется учетной записью администратора, выберите склад и перейдите на страницу загрузки, укажите элементы, которые необходимо загружаться локально и настраивать координаты.Информацию можно сохранить.
Режим командной строки: непосредственно введите в терминал следующую команду:
- -DgroupId и -DartifactId составляют координаты пакета jar в pom.xml, то есть соответствующие зависимости
groupId
иartifactId
- -
Dfile
Указывает абсолютный путь к пакету jar, который необходимо загрузить. - -Durl — это точный URL-адрес хранилища приватных серверов.
- -DrepositoryId — это идентификатор, определенный для репозитория частного сервера.
- -Dversion указывает номер версии
- -Dpackaging указывает метод упаковки
Когда появится журнал консолиBUILD SUCCESS
Когда отображается сообщение, это означает, что упаковка прошла успешно.Если упаковка не удалась, очень вероятно, что файл конфигурации Mavenserver
Из-за недостаточности разрешений пользователя для элемента фон Nexus должен назначать разрешения на загрузку ролям пользователей.
Эпилог
При разработке проектов корпоративного уровня Java создание и обслуживание частных серверов является важным шагом в использовании Maven.Эта статья идет от краткого введения в Maven до быстрой настройки и использования для дальнейшего освоения частных серверов Maven, прокладывая путь к последующая корпоративная микросервисная архитектура.
Рекомендуемое чтение
- Одна статья, чтобы освоить Spring Boot Profiles
- Как изящно закрыть приложение Spring Boot
- Вам нужно управление интерфейсом?
- Ломбок из Java должен знать, должен знать
- Nacos нового поколения микросервисов Java
использованная литература
-
Приступая к работе с Maven, достаточно прочитать это:nuggets.capable/post/684490…
-
Мавен в действии:book.Douban.com/subject/534…
-
Команда репозитория maven на частном сервере для загрузки пакета jar:у-у-у. Краткое описание.com/afraid/CCD7 не 6436…
-
Что такое репозиторий Maven:medium.com/@Chris. Настроить…