Управление проектами серии Maven (2) — создание проектов, POM-файлов, механизмов зависимостей, жизненных циклов, настраиваемых библиотек, внешних зависимостей.
Управление проектами серии Maven (2) — создание проектов, POM-файлов, механизмов зависимостей, жизненных циклов, настраиваемых библиотек, внешних зависимостей.

Серия Maven по управлению проектами (2)

Создавайте проекты, POM-файлы и механизмы зависимостей.

Жизненный цикл, пользовательские библиотеки, внешние зависимости

Оглавление

  • 1. Создайте проект Maven.
    • 1.1. Создание командной строки/терминала.
    • 1.2. Создание Затмения
    • 1.3. Преобразование проекта Java в проект Maven.
  • 2. POM-файл
    • 2.1. Зависимость
      • 2.1.1、JUnit
      • 2.1.2、TestNG
      • 2.1.3、Selenium
      • 2.1.4、Appium
      • 2.1.5、OkHttp
      • 2.1.6、HttpClient
      • 2.1.7、JSON
      • 2.1.8、ExtentReports
    • 2.2. Плагин
      • 2.2.1、maven-compiler-plugin
      • 2.2.2、maven-surefire-plugin
    • 2.3. Удаленный склад.
  • 3. Механизм зависимости
  • 4. Постройте жизненный цикл
  • 5. Настройте библиотеку как локальную библиотеку ресурсов.
  • 6. Ссылка на внешние зависимости

1. Создайте проект Maven.

1.1. Создание командной строки/терминала.

1. В Widnows (командная строка) или Mac (терминал) в этом разделе в качестве примера используется Widnows. Откройте командную строку, введите папку, в которой вы хотите создать проект Maven, и введите команду (идентификатор группы — com. test.demo, идентификатор проекта — My_Maven_Demo):

Язык кода:javascript
копировать
mvn archetype:generate -DgroupId=com.test.demo -DartifactId=My_Maven_Demo -DarchetypeArtifactId=maven-archetype-quickstart

Как показано на картинке: создание завершено.

Примечание. Процесс установки может потребовать подтверждения, просто нажмите Enter.

Проект Maven (My_Maven_Demo) создан.

2. Чтобы использовать его в Eclipse, войдите в проект My_Maven_Demo из командной строки и введите команду:

mvn eclipse:eclipse

3. Откройте Eclipse и импортируйте проект.

Нажмите наFile--->Import--->General--->Existing Projects into Workspace。

Выберите только что созданный проект Maven (My_Maven_Demo) и нажмите «Готово».

Выбранные товары,правая кнопка мышиConfigure--->Convert to Maven Project, просто преобразуйте его в проект Maven.

4. Как показано на рисунке: структура проекта.

Весь исходный код находится в файле /src/main/java/.

Весь код модульного теста помещается в файл /src/test/java/.

POM-файл (pom.xml) описывает информацию всего проекта.,Структура из Оглавления,Плагин проекта,Зависимости проекта,Как построить этот проект и т. д.

1.2. Создание Затмения

1. В этом разделе в качестве примера используется Widnows. Откройте Eclipse и создайте проект.

Нажмите наFile--->New--->Project--->Maven--->Maven Project。

По умолчанию достаточно, нажмите «Далее».

Выберите идентификатор артефакта в качестве maven-archetype-quickstart и нажмите «Далее».

Введите идентификатор группы, идентификатор проекта, версию, пакет и другую информацию и нажмите «Готово».

2. Как показано на рисунке: структура проекта.

Весь исходный код находится в файле /src/main/java/.

Весь код модульного теста помещается в файл /src/test/java/.

POM-файл (pom.xml) описывает информацию всего проекта.,Структура из Оглавления,Плагин проекта,Зависимости проекта,Как построить этот проект и т. д.

1.3. Преобразование проекта Java в проект Maven.

В этом разделе в качестве примера используется Widnows и открывается Eclipse.

Как показано на рисунке: My_Maven_Demo3 — это созданный проект Java.

1、Выбранные товары,правая кнопка мышиConfigure--->Convert to Maven Project, преобразуйте его в проект Maven.

Введите идентификатор группы, идентификатор проекта, версию и другую информацию и нажмите «Готово».

2. Как показано на рисунке: структура проекта.

POM-файл (pom.xml) описывает информацию всего проекта.,Структура из Оглавления,Плагин проекта,Зависимости проекта,Как построить этот проект и т. д.

2. POM-файл

POM означает объектную модель проекта. Это базовая единица работы в Maven, представляющая собой XML-файл (pom.xml).

Проект, содержащийся в POM, построен с использованием Maven.,Используется для хранения различной информации о конфигурации, целях, плагинах и т. д.,при выполнении задачи или цели,Maven будет использовать файл POM, который сейчас находится в Оглавлении.,Прочтите необходимую информацию о конфигурации,Затем выполните цель. Следует отметить, что,Для каждого проекта существует только один файл POM (pom.xml).

Корневым элементом pom.xml является проект, который имеет три основных дочерних узла:

(1) groupId Это уникальный номер группы проекта. Например: com.test.demo

(2) arteId Это идентификатор проекта, который является именем проекта. Например: My_Maven_Demo

(3) версия Это версия проекта. Например: 1.0

Маркер в библиотеке: groupId:artifactId:version.

Например: com.test.demo:My_Maven_Demo:1.0

2.1. Зависимость

Зависимости — наиболее важная часть Maven. Причина, по которой Maven используется в проектах, заключается в его функции управления зависимостями. Если вы хотите внедрить в проект jar-пакет, вам нужно всего лишь ввести координаты его jar-пакета в pom.xml.

Как получить координаты jar-пакета?

В качестве примера возьмем получение координат jar-пакета Junit.

1. Откройте URL-адрес репозитория Maven: http://mvnrepository.com/, введите junit в строке поиска и нажмите «Поиск».

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

3. Выберите соответствующий номер версии, например 4.12, и нажмите, чтобы войти.

4. Как показано на рисунке: координаты пакета JUnit получены.

5. Скопируйте полученные координаты в файл pom.xml.

2.1.1、JUnit

Язык кода:javascript
копировать
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>

2.1.2、TestNG

Язык кода:javascript
копировать
<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>6.11</version>
    <scope>test</scope>
</dependency>

2.1.3、Selenium

Язык кода:javascript
копировать
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.12.0</version>
</dependency>
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-server</artifactId>
    <version>3.12.0</version>
</dependency>

2.1.4、Appium

Язык кода:javascript
копировать
<dependency>
    <groupId>io.appium</groupId>
    <artifactId>java-client</artifactId>
    <version>6.1.0</version>
</dependency>

2.1.5、OkHttp

Язык кода:javascript
копировать
<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>3.10.0</version>
</dependency>

2.1.6、HttpClient

Язык кода:javascript
копировать
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.6</version>
</dependency>

2.1.7、JSON

Язык кода:javascript
копировать
<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20180813</version>
</dependency>

2.1.8、ExtentReports

Язык кода:javascript
копировать
<dependency>
    <groupId>com.aventstack</groupId>
    <artifactId>extentreports</artifactId>
    <version>3.1.5</version>
</dependency>

2.2. Плагин

Просто скопируйте плагин в файл pom.xml.

2.2.1、maven-compiler-plugin

Добавьте этот плагин компилятора, чтобы сообщить Maven, какую версию JDK (например, 1.8) использовать для компиляции проекта.

Язык кода:javascript
копировать
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.0</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
    </configuration>
</plugin>

2.2.2、maven-surefire-plugin

Maven выполняет модульные тесты через плагин Maven Surefire. (Интеграционное тестирование выполняется через плагин Maven Failsafe).

существоватьpom.xmlСредняя конфигурацияJUnit、TestNGТестирование зависимостей платформы,может автоматически идентифицировать и запуститьsrc/testОглавление Ниже приведены тестовые примеры, написанные с использованием этой платформы.。Maven Surefire Плагин также может идентифицировать и выполнять методы тестирования в обычных классах, которые соответствуют определенным соглашениям об именах (тестирование POJO: простое тестирование объектов Java).

Целью подключаемого модуля, привязанной по умолчанию на этапе тестирования жизненного цикла сборки, является цель тестирования в подключаемом модуле Maven Surefire. Никакой дополнительной настройки не требуется, просто запустите mvn test напрямую.

Язык кода:javascript
копировать
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.22.0</version>
</plugin>

В сочетании с TestNG (выполните testng.xml):

Язык кода:javascript
копировать
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.22.0</version>
    <configuration>
        <testFailureIgnore>true</testFailureIgnore>
        <suiteXmlFiles>
            <suiteXmlFile>testng.xml</suiteXmlFile>
        </suiteXmlFiles>
    </configuration>
</plugin>

2.3. Удаленный склад.

Язык кода:javascript
копировать
<repositories>
    <repository>
        <id>saucelabs-repository</id>
        <url>https://repository-saucelabs.forge.cloudbees.com/release</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

3. Механизм зависимости

1. Откройте файл POM (pom.xml) проекта Maven и добавьте зависимости, которые вы хотите использовать (например, jta).

Язык кода:javascript
копировать
<dependencies>
    <dependency>
        <groupId>jta</groupId>
        <artifactId>jta</artifactId>
        <version>1.0.1</version>
    </dependency>
</dependencies>

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

Язык кода:javascript
копировать
<repositories>
    <repository>
        <id>saucelabs-repository</id>
        <url>https://repository-saucelabs.forge.cloudbees.com/release</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

2. Когда Maven компилируется или строится, jta jar будет автоматически загружен и помещен в локальную библиотеку ресурсов Maven.

Порядок использования поиска зависимостей Maven:

(1) Найдите локальную библиотеку ресурсов. Если она не найдена, перейдите к шагу (2). В противном случае, если она найдена, будет выполнена дальнейшая обработка.

(2) Выполните поиск в центральном репозитории. Если он не найден, перейдите к шагу (3) (4), в противном случае, если он найден, он загрузит зависимость в локальный репозиторий для дальнейшего использования.

(3) Если удаленный склад не установлен, Maven прекратит обработку и выдаст ошибку (невозможно найти зависимую библиотеку).

(4) Выполните поиск в удаленном хранилище. Если он не найден, Maven прекратит обработку и выдаст ошибку (невозможно найти зависимую библиотеку). В противном случае, если он найден, он загрузит зависимость в локальный репозиторий для дальнейшего использования.

4. Постройте жизненный цикл

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

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

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

Язык кода:javascript
копировать
1. Чистый жизненный цикл (выполнение работ по очистке проекта)
(1)pre-clean Выполните необходимые процедуры перед фактической очисткой проекта.
(2)clean Удалите все файлы, созданные предыдущей сборкой.
(3)post-clean Выполните процессы, необходимые для завершения очистки проекта.

2. Жизненный цикл по умолчанию (обработка развертывания проекта)
(1)validate Убедитесь, что проект правильный и вся необходимая информация доступна.
(2)initialize Инициализируйте состояние сборки, например, установив свойства или создав Оглавление.
(3)generate-sources Создайте любой исходный код, включенный в компиляцию.
(4)process-sources Обработка исходного кода, например фильтрация любого значения.
(5)generate-resources Сгенерируйте ресурсы, включенные в пакет.
(6)process-resources Обработайте ресурс, копируйте в целевое Оглавление и подготовьте его к упаковке.
(7)compile Скомпилируйте исходный код проекта.
(8)process-classes Скомпилированные файлы постобработки, такие как улучшения байт-кода классов Java.
(9)generate-test-sources Создайте любой исходный код теста, включенный в компиляцию.
(10)process-test-sources Обработка исходного кода теста, например фильтрация любого значения.
(11)generate-test-resources Создайте ресурсы для тестирования.
(12)process-test-resources Объедините ресурс копировать с тестовой целью Оглавление.
(13)test-compile Скомпилируйте исходный код теста в тестовую цель Оглавление.
(14)process-test-classes Обработайте сгенерированные файлы из тестовой компиляции, например улучшения байт-кода классов Java. Для Мавен Версия 2.0.5 и выше.
(15)test Используйте подходящую среду модульного тестирования для запуска тестов, которые не требуют упаковки или развертывания кода.
(16)prepare-package Перед фактической упаковкой выполните некоторые операции, необходимые для подготовки пакета, в результате чего обычно создается расширенная, обработанная версия пакета. (Мавен 2.1 и выше)
(17)package Используйте скомпилированный код и упакуйте его в формат, пригодный для развертывания, например JAR.
(18) pre-integration-test выполняет необходимые операции перед выполнением интеграционного теста, который может включать, например, настройку требуемой среды.
(19)integration-test При необходимости обработайте пакет и опубликуйте его в среде, где можно выполнять интеграционные тесты.
(20)post-integration-test Действия, необходимые после выполнения интеграционных тестов, включая очистку среды.
(21)verify Выполните любые проверки, чтобы убедиться, что пакет действителен и соответствует стандартам качества.
(22)install Установите пакет в локальный репозиторий как зависимость для других локальных проектов.
(23)deploy Выполнено в среде интеграции или выпуска, переместите окончательный пакет и скопируйте его в удаленный репозиторий для совместного использования с другими разработчиками и проектами.

3. Жизненный цикл сайта (обработка документов, формируемых проектом)
(1)pre-site Этот процесс выполняется до создания фактического сайта проекта.
(2)site Создание документации сайта для проекта.
(3)post-site Выполните процесс определения создания сайта и подготовки сайта к развертыванию.
(4)site-deploy Разверните сгенерированные документы сайта на указанном веб-сервере.

5. Настройте библиотеку как локальную библиотеку ресурсов.

Создайте собственный jar-файл (myjar.jar) в локальном репозитории Maven.

1. Создайте проект My_Maven_Jar, создайте класс MyJar и упакуйте проект в jar.

Как показано на рисунке: структура проекта My_Maven_Jar.

Класс MyJar, код сценария:

Язык кода:javascript
копировать
package com.test2.demo;

public class MyJar {

       public static void main(String[] args) {
              MyJar myJar = new MyJar();
              myJar.myTest();
       }

       public void myTest() {
              System.out.println("Hello MyJar");
       }

}

Результаты выполнения: вывод консоли Hello MyJar

Щелкните проект правой кнопкой мыши и выберите «Экспорт».

выбиратьJava--->JAR файл и нажмите «Далее».

Выберите проект и файл, который хотите экспортировать, укажите путь экспорта файла и нажмите «Далее».

Нажмите Далее.

Выберите основную категорию и нажмите «Готово».

Как показано на рисунке: упакуйте проект в myjar.jar.

Откройте командную строку для запуска myjar.jar и введите java -jar myjar.jar.

Как показано на картинке: операция прошла успешно.

2. Установите myjar.jar в локальную библиотеку ресурсов Maven.

Откройте командную строку и введите команду установки:

Язык кода:javascript
копировать
mvn install:install-file -Dfile=D:\workspace2\myjar.jar -DgroupId=com.test2.demo -DartifactId=myjar -Dversion=1.0 -Dpackaging=jar

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

3. Проект Maven ссылается на пользовательскую библиотеку.

Создайте проект Maven (My_Maven_Demo4), как показано на рисунке:

Измените файл POM (pom.xml) и добавьте зависимости (myjar.jar).

Язык кода:javascript
копировать
<dependency>
    <groupId>com.test2.demo</groupId>
    <artifactId>myjar</artifactId>
    <version>1.0</version>
</dependency>

Как показано на рисунке: Зависимости Maven добавлены в myjar.jar.

Создайте тестовый класс (MyTest) и проверьте метод пользовательской зависимости (myjar.jar).

Класс MyTest, код скрипта:

Язык кода:javascript
копировать
package com.test.demo;
import org.junit.Test;
import com.test2.demo.MyJar;

public class MyTest {
      
       @Test
       public void testDemo(){
              MyJar t = new MyJar();
              t.myTest();
       }

}

Запустите проект, щелкните правой кнопкой мыши «Выполнить» на pom.xml. As--->Maven test。

Результат операции: выполнение успешно.

6. Ссылка на внешние зависимости

1. Создайте проект Maven (My_Maven_Demo5), создайте папку lib и скопируйте внешние зависимости, на которые будет ссылка (например: пользовательскую библиотеку myjar.jar).

2. Измените файл POM (pom.xml) и укажите внешнюю зависимость (myjar.jar).

Язык кода:javascript
копировать
<dependency>
    <groupId>com.test2.demo</groupId>
    <artifactId>myjar</artifactId>
    <version>1.0</version>
    <systemPath>${basedir}/lib/myjar.jar</systemPath>
    <scope>system</scope>
</dependency>

Как показано на рисунке: Maven ссылается на внешнюю зависимость myjar.jar.

3. Создайте тестовый класс (MyTest) и проверьте метод ссылки на внешние зависимости (myjar.jar).

Класс MyTest, код скрипта:

Язык кода:javascript
копировать
package com.test.demo;
import org.junit.Test;
import com.test2.demo.MyJar;

public class MyTest {
      
       @Test
       public void testDemo(){
              MyJar t = new MyJar();
              t.myTest();
       }

}

Запустите проект, щелкните правой кнопкой мыши «Выполнить» на pom.xml. As--->Maven test。

Результат операции: выполнение успешно.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose