Мавен такой простой

Java задняя часть сервер maven

что такое мавен

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

**Maven — это кроссплатформенный инструмент управления проектами** — это проект с открытым исходным кодом...

Maven в основном служитПостроение проекта, управление зависимостями и управление информацией о проекте на основе платформы Java...

Как понять ПОМ? ? ?

  • Мы используем Java — это объектно-ориентированное программирование, а объекты — это наши классы.
  • Maven ориентирован на проекты и рассматривает наш проект как объект для управления.

Зачем использовать Maven? ?

До использования Maven наш пакет jar был очень грязным? ? ? Взгляните, где я храню пакет банок

这里写图片描述

Прежде чем изучать Maven,Я тоже думал разобрать эти jar-пакеты один за другим, если жёсткий диск сломается, то мой jar-пакет придётся искать заново... и из-за проблемы с версией пакета jar я сильно натерпелся... Это требует много времени, чтобы разобраться с пакетом jar...

Вы когда-нибудь хотели вручную ввести пакет jar, но идея Intellij, похоже, не поддерживает эту функцию? ? [Я еще не нашел]...Поэтому я могу полагаться только на собственную команду jar для создания пакета jar.Через некоторое время, когда я хочу переупаковать пакет jar, я снова забыл команду... Очень огорчен...

И наш Maven очень хорошо решает две вышеперечисленные ситуации.Конечно, функций Maven не только так мало, я просто привел два небольших примера... По мере того, как мы будем учиться, Вы увидите силу Maven...

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

Создайте проект автоматически

  • Разработка программного обеспечения: анализ осуществимости, анализ требований, проектирование программного обеспечения, разработка программного обеспечения, выпуск, эксплуатация и обслуживание.
  • Сборка программного обеспечения: программное обеспечение было разработано, его необходимо встроить в продукт для выпуска. Шаги сборки:
  • Clear -> Compile -> Test -> Report -> Packaging (JAR\WAR) -> Installation -> Deployment to Remote MavenАвтоматически создавать программные проекты с помощью одной команды

В Maven есть концепция «соглашение важнее конфигурации», что означает, что когда некоторые спецификации согласованы, люди используют ее!Если заранее согласовать структуру каталогов всех проектов, стандартный процесс разработки (компилировать, тестировать), все следуют этому соглашению. Управление программными проектами становится намного проще. Например:Как перейти дорогу (остановиться на красный свет и перейти на зеленый), как открыть дверь, закрыть дверь и т. д.

Установить Мавен

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

Настроить переменные среды

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

这里写图片描述

这里写图片描述

Чтобы проверить, прошла ли установка Maven успешно, просто наберите в консоли mvn -version...

这里写图片描述

Структура каталогов Maven

这里写图片描述

  • bin: содержит скрипты, запускаемые mvn
  • boot: содержит структуру загрузчика классов plexus-classworlds.
  • conf: содержит файл конфигурации settings.xml
  • lib: содержит библиотеку классов Java, необходимую для среды выполнения Maven.
  • Репозиторий пользователя по умолчанию в Settings.xml: ${user.home}/.m2/repository [пакеты jar, загруженные через maven, будут храниться в указанном личном репозитории]
  •  Адрес загрузки хранилища Maven по умолчанию находится в: pom.xml из maven-model-builder-3.0.4.jar в каталоге lib maven

В нашем Maven есть понятие локального склада.Можем изменить расположение локального склада в конфигурационном файле settings.xml.Я, например, поставил локальный склад на рабочий стол.

这里写图片描述

这里写图片描述


Использование Maven в IDEA


Для получения подробной информации см.Подробное руководство по Maven --- Среда идей

Стоит добавить: при изменении пути web.xml в этом сообщении в блоге не указывается абсолютный путь... Возможно, некоторые люди здесь не знают, как его написать. я даю ссылку

X:\Users\ozc\Desktop\zhongfucheng3\src\main\webapp\WEB-INF\web.xml

maven терминология

В нашей предыдущей статье мы уже знали, как использовать Maven под идею Intellij.Созданная структура каталогов выглядит так:

这里写图片描述

Приведенная выше структура каталогов — это то, что Maven называет «соглашением». Мы используем Maven для создания проектов Java, которые все основаны на этой структуре каталогов...

Далее, давайте взглянем на некоторые часто используемые термины в Mavaen.

склад

местный склад

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

Центральный склад:

  • ** Когда Maven не может найти нужный пакет jar на локальном складе и частном сервере, он переходит на центральный склад, чтобы помочь нам загрузить соответствующий пакет jar**. Итак, откуда Maven знает, где его скачать? ? На самом деле Maven уже настроен

Файл POM.xml в папке apache-maven-3.2.1\lib\maven-model-builder-3.2.1\org\apache\maven\model настроен

  <repositories>
    <repository>
      <id>central</id>
      <name>Central Repository</name>
      <url>http://repo.maven.apache.org/maven2</url>
      <layout>default</layout>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>central</id>
      <name>Central Repository</name>
      <url>http://repo.maven.apache.org/maven2</url>
      <layout>default</layout>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <releases>
        <updatePolicy>never</updatePolicy>
      </releases>
    </pluginRepository>
  </pluginRepositories>

частный сервер

  • Для сервера, на котором хранятся некоторые пакеты jar, поскольку в локальном репозитории невозможно иметь большинство пакетов jar, команда всегда будет обращаться к центральному репозиторию для загрузки, что требует очень много времени для разработки. Если на частном сервере есть эти jar-пакеты, то каждому компьютеру не нужно загружать их из центрального репозитория...

Жизненный цикл сборки программного обеспечения maven

Жизненный цикл программного обеспечения выглядит следующим образом.

-** Очистить --> Компилировать --> Тестировать --> Отчет --> Пакет (jar\war) --> Установить --> Развертывание**

Плагин команды жизненного цикла maven

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

这里写图片描述

координаты мавена

  1. Состав координат: groupId + ArtifactId + версия
  • groupId: идентификатор группы, название организации, название компании: например, идентификатор компании или название пакета компании. алибаба---"Годе--"Версия 5.01
  • ArtifactId: идентификатор артефакта, название продукта или идентификатор продукта.
  • версия : номер версии
  1. Состав баночки: артефактId-версия.jar

pom.xml введение

Введение pom.xml:объектная модель проекта объектная модель проекта, которая является основным файлом конфигурации maven

Когда мы поймем приведенные выше термины, следующий файл конфигурации pom.xml не будет незнакомым.


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>zhongfucheng3</groupId>
    <artifactId>zhongfucheng3</artifactId>
    <version>1.0-SNAPSHOT</version>


</project>

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

这里写图片描述

Область применения области включает в себя тестирование, компиляцию и т. д.,По умолчанию компилируется, тогда в чем разница между тестом и компиляцией?

  • Проблема косвенной зависимости:Зависимый пакет jar должен находиться в области компиляции.Если он находится в области тестирования, опубликованный пакет jar не будет включать пакет jar и зависимости области тестирования.

<scope>test</scope>

Maven [частный склад, загрузка пакета jar, ссылка на пакет jar частного сервера, загрузка локального проекта на частный сервер]

Как упоминалось ранее, мы используем Maven.Если нам нужно импортировать соответствующий jar-пакет, Maven сначала будет искать его на нашем локальном складе ---> Частный склад ---> Центральный склад...

Однако на нашем локальном складе часто нет нужной упаковки jar, а скачивание с центрального склада - пустая трата времени и ресурсов... Так что у нас вообще частный склад...

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

这里写图片描述

Этапы подготовки

мы используемNexus Framework для создания частного сервера, который относится к фреймворку с открытым исходным кодом организации sonatype, который используется для настройки частного сервера maven.

Нексусное построение окружения

  • Шаг 1. Загрузите пакет nexus-webapp-1.9.2.4.war и скопируйте его в каталог webapps в каталоге tomcat.
  • Шаг 2: Запустите tomcat Пароль учетной записи по умолчанию: admin admin123
  • Шаг 3: Посетите http://localhost:8080/имя проекта/

Tomcat автоматически проанализирует военный пакет, а затем автоматически загрузит подключаемый модуль...

这里写图片描述

Посетите проект, чтобы перейти на главную страницу

这里写图片描述

Авторизоваться...

这里写图片描述

Введение склада

这里写图片描述

  • прокси: прокси удаленного склада. Например, в нексусе настраивается прокси центрального репозитория, когда пользователь запрашивает артефакт с прокси, прокси будет искаться локально, если не найдется, то будет загружен из удаленного репозитория и возвращен пользователю , действовать как реле
  • Hosted: хост-репозиторий, пользователи могут развернуть некоторые из своих компонентов на хостинге или вручную загрузить компоненты на хостинг. Например, драйвер оракула ojdbc6.jar нельзя получить из центрального репозитория, поэтому его необходимо вручную загрузить на размещенный
  • Группа: складская группа, В мавене такого понятия нет, оно уникально для нексуса. Цель состоит в том, чтобы объединить указанные выше несколько репозиториев и предоставить пользователю единый адрес, чтобы пользователю не нужно было настраивать несколько адресов в pom, если адрес группы настроен единообразно. справа можно кликнуть и посмотреть склад Список артефактов. Однако будьте осторожны с кэшированием браузера. Сегодня узнал, что компонент обновился, но в браузере его не видно, думал баг, а на самом деле браузер закешировал.
  • виртуальный: это также зеркало центрального склада, поддерживающее старую версию M1.

Роль каждого репозитория:

  • Третья сторона: репозиторий артефактов для сторонних выпусков недоступен в общедоступных репозиториях.
  • Снимки Apache: репозиторий артефактов, использующий версии моментальных снимков прокси-репозитория ApacheMaven.
  • Центральный: репозиторий, используемый для проксирования артефактов версии выпуска в центральном репозитории maven.
  • Центральная тень M1: зеркальный репозиторий компонентов для предоставления выпусков в формате M1 в центральном репозитории.
  • Codehaus Snapshots: репозиторий для проксирования артефактов моментальных снимков репозиториев CodehausMaven.
  • Выпуски: репозиторий типа хоста, используемый для развертывания и управления внутренними артефактами выпуска.
  • Моментальные снимки: репозиторий типа хоста для развертывания и управления внутренними артефактами версий моментальных снимков.

Группа складов — это виртуальная концепция,Агрегируя физические склады (прокси, хостинг), единый адрес открывается внешнему миру.Здесь следует отметить, что склад слева — это склад, который будет агрегирован.

Порядок настройки складских групп:

这里写图片描述

这里写图片描述

Загрузите пакет jar на частный сервер

Загружайте напрямую через сайт, загружайте pig-0.12.1.jar с рабочего стола на приватный сервер

这里写图片描述

Когда я снова проверил его, он был загружен.

这里写图片描述

Пакет jar зависимостей с частного сервера

Настройте путь, идентификатор группы, версию и т. д. частного сервера в файле pom.xml.



    <!-- 假如没有私服 ,则 本地仓库找不到,则访问中心仓库
     假如有私服 :访问顺序
       首先访问本地仓库
   本地仓库没有,则访问私服仓库
   私服仓库也没有,则访问中心仓库
 -->
    <!-- 加载的是 第三方项目使用的jar包 -->
    <repositories>
        <repository>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <id>public</id>
            <name>public</name>
            <url>http://localhost:8080/nexus-2.6.2/content/groups/public/</url>
        </repository>
    </repositories>

    <!-- 加载的是maven生命周期插件的jar包 -->
    <pluginRepositories>
    <pluginRepository>
        <releases>
            <updatePolicy>never</updatePolicy>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <id>public</id>
        <name>public</name>
        <url>http://127.0.0.1:8080/nexus-2.6.2/content/groups/public/</url>
    </pluginRepository>
    </pluginRepositories>

这里写图片描述

Пакет jar частного сервера также загружается на локальное хранилище.

这里写图片描述

Опубликовать локальный проект на частном сервере

Конфигурацию сервера можно прописать в Maven's settings.xml


  <!-- 分销管理 ,把jar包发布到私服中 -->
 <!-- 	配置服务器-->
	 <server>
      <id>releases</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
	<server>
      <id>snapshots</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
    

Стоит отметить, что:Вы должны обратить внимание на то, какой Maven вы используете, будь то Maven, который вы загрузили самостоятельно, или Maven, интегрированный с Idea, если он не настроен, будет ошибка 401..



  <distributionManagement>
  <!-- 发布到 快照版本的仓库,即 测试版本仓库 -->
  <snapshotRepository>
  <id>snapshots</id>
  <url>http://127.0.0.1:8080/nexus-2.6.2/content/repositories/snapshots/</url>
  </snapshotRepository>
  <!-- 发布到 发行版本的仓库中,也可以发布到3rd party 仓库 -->
  <repository>
    <id>releases</id>
  <url>http://127.0.0.1:8080/nexus-2.6.2/content/repositories/releases/</url>
  </repository>

Посмотреть складскую группу еще раз

这里写图片描述


Суммировать

  • Maven хорошо управляет нашими проектами и нашими банками. Это очень удобно при построении проекта.
  • Для установки Maven требуется настроить переменную среды JAVA_HOME.
  • Settings.xml Настраивает наше местоположение локального репозитория.
  • Если вы перейдете к центральному репозиторию, чтобы слишком сильно загрузить пакет jar, это сильно повлияет на производительность. Если мы строим частный склад, если на частном складе есть соответствующая упаковка банок, мы можем найти ее прямо на частном складе.
  • Узнайте, как загрузить jar-пакет на странице приватного репозитория.
  • Узнайте, как связать пакет jar частного репозитория с проектом.
  • Узнайте, как загружать локальные проекты в частные репозитории.

Если в статье есть какие-либо ошибки, пожалуйста, поправьте меня, и мы сможем общаться друг с другом. Учащиеся, привыкшие читать технические статьи в WeChat и желающие получить больше ресурсов по Java, могутОбратите внимание на публичный аккаунт WeChat: Java3y