410013796724260
• Webmoney
R335386147728
Z369087728698
Maven в вопросах и ответахНа странице рассмотрены следующие вопросы использования фреймворка Maven :
Команда создания нового проектаДля создания нового проекта используется плагин archetype с целью (goal) generate. В команде необходимо указать параметры GAV (groupId, artifactId, version) и тип артефакта archetypeArtifactId. Количество разнотипных артефактов у фреймворка maven огромно. Пример копирования наименований архитипов в файл и создания простого maven-проекта : 1. Копирование наименований архитипов в файл mvn archetype:generate > archetypes.txt 2. Создание простого maven проекта mvn archetype:generate \ -DgroupId=com.example \ -DartifactId=framework-factory \ -Dversion=1.0.0 \ -DarchetypeArtifactId=maven-archetype-quickstart Структура файла описания проекта pom.xmlПри описании проекта в файле pom.xml используются следующие теги и секции :
Не все секции файла описания проекта pom.xml являются обязательными. GAV-параметры и полное наименование артефактаПараметры артефакта GAV включают groupId, artifactId, version. Полное имя артефакта (координата) представляет четыре слова, разделенные знаком двоеточия в следующем порядке groupId:artifactId:packaging:version. Назначение SNAPSHOTSNAPSHOT используется в определении версии артефакта и обозначает незавершенность её разработки. При каждой сборке проекта maven проверяет наличие обновленной версии snapshot артефакта в удалённом репозитории и подгружает последний. Область действия зависимости scopeОбласть действия зависимости scope определяет этап жизненного цикла проекта, в котором эта зависимость будет использоваться. Maven использует 6 областей :
Использование внешних зависимостейВ качестве внешних зависимостей, как правило, используются собственные разработки, не размещаемые в центральном и локальном репозиториях. Внешние зависимости определяются в файле pom.xml также, как и другие зависимости – необходимо определить параметры GAV (groupId, artifactId, version) и область видимости scope как system. В теге <systemPath> необходимо указать абсолютный путь к файлу. <dependencies> <dependency> <groupId>ru.carousel</groupId> <artifactId>carousel-lib</artifactId> <version>1.0.0</version> <scope>system</scope> <systemPath> d:/projects/libs/carousel-lib.jar </systemPath> </dependency> </dependencies> Транзитивные зависимостиТранзитивные зависимости позволяют избегать необходимости дополнительного указания в секции dependencies библиотек, которые требуются для самой зависимости, и maven включает их в проект автоматически. При разрешении конфликта версий используется принцип «ближайшей» зависимости, то есть выбирается зависимость, путь к которой через список зависимых проектов является наиболее коротким. Команды «mvn depenency:list» и «mvn dependency:tree» позволяют вывести в консоль зависимости в виде списка или дерева соответственно. Maven плагиныMaven использует два типа плагинов :
Плагины используются для :
Порядок выполнения maven командыКак будет выполнена следующая команда mvn clean dependency:copy-dependencies package Аргументы clean и package являются фазами сборки проекта, «dependency:copy-dependencies» представляет собой задачу, которую выполняет плагин dependency для цели copy-dependencies (копирование зависимостей проекта в поддиректорию target/dependency). Maven сначала выполнит фазу очистки clean, после этого будут скопированы зависимости "dependency:copy-dependencies", и в завершении выполнится сборка проекта. Тестирование проектаДля выполнения JUnit тестов проекта необходимо выполнить команду "mvn test". Чтобы выполнить определенный тест необходимо в командной строке указать полный путь [-Dtest=package.test-class] к конкретному тесту, например : mvn test -Dtest=com.example.TestConnection Для запуска сборки проекта с предварительной очисткой поддиректории "target" без выполнения тестов используйте следующую команду : mvn clean package -Dmaven.test.skip=true Выполнение тестов можно запретить в секции «properties» файла pom.xml. Для этого можно использовать тег <skipTests> или <maven.test.skip>. Например : <properties> <maven.test.skip>true</maven.test.skip> </properties> Примечание : помните, что запретив выполнение тестов в файле pom.xml, нельзя будет выполнять тесты с помощью Maven. Maven репозиторииПод репозиторием (repository) понимается, как правило, внешние центральные хранилища артефактов, в которых собрано огромное количество наиболее популярных и востребованных библиотек, и локальное хранилище (${user.home}\.m2\repository), в котором хранятся копии используемых ранее библиотек. Кроме этого, можно создать репозиторий в самом maven-проекте. Используемые в проекте внешние репозитории описываются в секции <repositories> : <repositories> <repository> <id>repo1.maven.org</id> <url>http://repo1.maven.org/maven2</url> </repository> </repositories> Предопределёные переменные в файле pom.xmlПри описании проекта в файле pom.xml можно использовать переменные, на которые можно сослаться с помощью префиксов "project." или "pom." Наиболее часто используемые элементы :
|