Серия Maven по управлению проектами (2)
Создавайте проекты, POM-файлы и механизмы зависимостей.
Жизненный цикл, пользовательские библиотеки, внешние зависимости
1. Создайте проект Maven.
1. В Widnows (командная строка) или Mac (терминал) в этом разделе в качестве примера используется Widnows. Откройте командную строку, введите папку, в которой вы хотите создать проект Maven, и введите команду (идентификатор группы — com. test.demo, идентификатор проекта — My_Maven_Demo):
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. В этом разделе в качестве примера используется Widnows. Откройте Eclipse и создайте проект.
Нажмите наFile--->New--->Project--->Maven--->Maven Project。
По умолчанию достаточно, нажмите «Далее».
Выберите идентификатор артефакта в качестве maven-archetype-quickstart и нажмите «Далее».
Введите идентификатор группы, идентификатор проекта, версию, пакет и другую информацию и нажмите «Готово».
2. Как показано на рисунке: структура проекта.
Весь исходный код находится в файле /src/main/java/.
Весь код модульного теста помещается в файл /src/test/java/.
POM-файл (pom.xml) описывает информацию всего проекта.,Структура из Оглавления,Плагин проекта,Зависимости проекта,Как построить этот проект и т. д.
В этом разделе в качестве примера используется 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
Зависимости — наиболее важная часть 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.
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.11</version>
<scope>test</scope>
</dependency>
<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>
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>6.1.0</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.10.0</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.6</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180813</version>
</dependency>
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports</artifactId>
<version>3.1.5</version>
</dependency>
Просто скопируйте плагин в файл pom.xml.
Добавьте этот плагин компилятора, чтобы сообщить Maven, какую версию JDK (например, 1.8) использовать для компиляции проекта.
<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>
Maven выполняет модульные тесты через плагин Maven Surefire. (Интеграционное тестирование выполняется через плагин Maven Failsafe).
существоватьpom.xmlСредняя конфигурацияJUnit、TestNGТестирование зависимостей платформы,может автоматически идентифицировать и запуститьsrc/testОглавление Ниже приведены тестовые примеры, написанные с использованием этой платформы.。Maven Surefire Плагин также может идентифицировать и выполнять методы тестирования в обычных классах, которые соответствуют определенным соглашениям об именах (тестирование POJO: простое тестирование объектов Java).
Целью подключаемого модуля, привязанной по умолчанию на этапе тестирования жизненного цикла сборки, является цель тестирования в подключаемом модуле Maven Surefire. Никакой дополнительной настройки не требуется, просто запустите mvn test напрямую.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.0</version>
</plugin>
В сочетании с TestNG (выполните testng.xml):
<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>
<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).
<dependencies>
<dependency>
<groupId>jta</groupId>
<artifactId>jta</artifactId>
<version>1.0.1</version>
</dependency>
</dependencies>
Добавьте удаленный репозиторий, и Maven загрузит зависимости из удаленного репозитория (центральный репозиторий не может выполнять поиск зависимостей).
<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 имеет три встроенных жизненных цикла сборки: по умолчанию (обработка развертывания проекта), очистка (обработка очистки проекта) и сайт (обработка документов, созданных проектом).
Все этапы сборки жизненного цикла по умолчанию, очистки и сайта перечислены ниже, и эти этапы выполняются в указанном порядке:
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, код сценария:
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.
Откройте командную строку и введите команду установки:
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).
<dependency>
<groupId>com.test2.demo</groupId>
<artifactId>myjar</artifactId>
<version>1.0</version>
</dependency>
Как показано на рисунке: Зависимости Maven добавлены в myjar.jar.
Создайте тестовый класс (MyTest) и проверьте метод пользовательской зависимости (myjar.jar).
Класс MyTest, код скрипта:
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).
<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, код скрипта:
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。
Результат операции: выполнение успешно.