Частный сервер Maven, используемый вашей компанией, построен следующим образом.

Java

Я — воздушный змей, официальный аккаунт «Воздушный змей в древние времена», вдохновитель программистов с глубиной и широтой, а также фермер-пастор, который планировал писать стихи, но написал код! Статьи будут включены вJavaNewBeeТакже есть карта знаний Java back-end, и в ней путь от Xiaobai до Daniel.

Почти все разработчики Java должны были использовать Maven.Если вы не использовали его, возможно, вы используете Gradle.Если вы не использовали оба, это немного ненормально. Кстати, в глазах Грэдла Maven — ерунда.

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

И управление пакетами — его основная функция.Если это не личный проект, мы получаем пакеты с центрального склада или github, но для проектов компании, чтобы обеспечить высокую скорость, мы обычно строим частный склад Maven внутри компании или внутри команда.

Зачем строить частный сервер

Когда мы зависим от пакета в файле pom, если не выполнена специальная конфигурация (то есть используется конфигурация maven по умолчанию), Maven сначала отправится на локальный склад для поиска.Если на локальном складе нет этого зависимого пакет, он получит его с центрального склада.Адрес центрального склада по умолчанию:repo1.maven.org/maven2, сервер находится за границей, возможно, скорость не может быть гарантирована. Бывает не везет, ночью сносите опенсорс проект, выполняете установку пакета Maven, просыпаетесь утром и смотрите на него, а он еще не скачан, вы не сердитесь.

Конечно, в Китае есть соответствующие склады, такие как у Али, и скорость по-прежнему очень хорошая.

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

Например, у компании есть низкоуровневый инструментарий, если нет частного сервера, то мы получаем этот пакет, для его установки на локальном складе нам нужно выполнить следующую команду:

mvn install:install-file 
-Dfile=common-util-0.0.1-SNAPSHOT.jar 
-DgroupId=com.kite 
-DartifactId=common-util
-Dversion=0.0.1-SNAPSHOT 
-Dpackaging=jar

После того, как модификация сделана, команду нужно повторно выполнить локально, это очень хлопотно?

Процесс создания приватного сервера

Nexus используется для создания частных серверов Maven. Можно сказать, что это лучший бесплатный инструмент. На его официальном сайте говорится: «Первое и единственное в мире бесплатное складское решение». Текущая последняя версия — OSS 3.x. Предусмотрены версии для Windows, Unix и OS X.

Здесь только краткое описание способа установки под линукс.Если скачивается последняя версия, то у нее есть требования к системной памяти и версии jdk.Объем памяти должен быть больше 4G, а минимальная версия jdk 1.8.

  1. Скачиваем пакет, разархивируем, запускаем команду
tar -zxvf nexus-version-unix.tar.gz
  1. Входитьnexus-version/bin/`` 目录,执行命令./nexus start`

  2. Доступ к порту по умолчанию 8081

Да, это так просто.

При нормальных обстоятельствах установка может быть завершена с помощью указанных выше трех шагов. Если возникает проблема и появляется сообщение «НЕ РЕКОМЕНДУЕТСЯ ЗАПУСКАТЬ ОТ ПРАВА КОРНЕВОГО ПОЛОЖЕНИЯ», вы можете изменить его, изменив/bin/nexusфайл, добавитьRUN_AS_USER=root, затем перезапустите.

Кроме того, если это среда Docker, вы можете напрямую получить образ nexus для завершения установки. Например, я искал нексус прямо на маке, потом скачал и запустил.

Знакомство с Нексусом

Когда мы заходим на домашнюю страницу нексуса в браузере через адрес, это выглядит следующим образом:

Имя учетной записи по умолчаниюadmin, парольadmin123. После входа в систему администратор может управлять ролями, пользователями и рядом других операций на странице настроек. Например, создайте роль, задайте разрешения на управление складом для этой роли, а затем добавьте людей в эту роль. Конкретная операция не будет слишком подробно описана и будет понятна с первого взгляда.

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

Что означает несколько видов

proxy: это метод прокси, который используется для проксирования центрального хранилища. Например, если пакет, от которого мы зависим, отсутствует на локальном складе, он будет получен с частного сервера. Если частный сервер недоступен, пакет будет сначала загружен на центральный склад, а затем загружен на локальный склад;

hosted: относится к внутренним пакетам нашей компании или команды, а размещенный репозиторий разделен на выпуски и снимки, первая из которых является официальной версией, а вторая, как правило, является версией для разработки и бета-версией;

group: Его цель - объединить несколько складов, а дальше нам нужно только настроить адрес склада данного типа в нашем проекте, чтобы связать несколько объединенных в нем складов.

использовать в проекте

Получить зависимости

Если вы обычный участник проекта, вам не нужно публиковать пакет на приватный сервер, вам нужно только добавить следующую конфигурацию в файл pom.

<repositories>
      <repository>
            <id>maven-public</id>
            <name>maven-public</name>
            <url>http://nexus.local:32768/repository/maven-public/</url>
            <snapshots>
               <enabled>true</enabled>
            </snapshots>
       </repository>
</repositories>

Идентификатор должен совпадать с именем вашего хранилища, а URL-адрес — это адрес хранилища частного сервера, тип которого является групповым, который сочетает в себе тип прокси и два склада размещенного типа. Установите для включения моментальных снимков значение true, что означает, что пакет версии моментальных снимков разрешен для загрузки.

выпуск (развертывание) пакета

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

Откройте файл конфигурации mavensetting.xml,оказатьсяserversузел, затем добавьтеserverузел.

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

  <server>
            <id>nexus-releases</id>
            <username>admin</username>
            <password>admin123</password>
        </server>

        <server>
            <id>nexus-snapshots</id>
            <username>admin</username>
            <password>admin123</password>
        </server>

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

  1. Затем вам нужно настроить следующее в файле pom:
<distributionManagement>
        <repository>
            <id>nexus-releases</id>
            <name>maven-releases</name>
            <url>http://nexus.local:8081/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>nexus-snapshots</id>
            <name>maven-snapshots</name>
            <url>http://nexus.local:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
</distributionManagement>

Мы видим, что в нем настроен репозиторий, а также есть snapshotRepository, представляющий версию релизов. Также обратите внимание, что идентификатор должен совпадать с идентификатором под сервером в settings.xml, иначе возникнут проблемы с разрешениями. url указывает адреса maven-releases и maven-snapshots соответственно.

Пока в проекте настроен 1.0-SNAPSHOT, тот, у которого есть SNAPSHOT, пойдет в репозиторий снэпшотов, а если SNAPSHOT не добавлен, то в репозиторий релизов.

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

  1. Наконец, выполните команду mvn clean deploy, чтобы опубликовать пакет в репозитории частного сервера.

С помощью вышеуказанной конфигурации и операций процесс публикации пакета может быть завершен.

Наконец

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


Не жди сильного мужика, сначала поставь лайк, меня вечно трахают зря, и мое тело этого не выдерживает!

Я коршун, общественный номер "Воздушный змей в древности". Программист-поощритель с глубиной и широтой, пастырский фермер-кодировщик, который планировал писать стихи, но написал код! Вы можете подписаться на меня сейчас или никогда не поздно читать исторические статьи. Ответ на "666" с сюрпризами