notes:java:maven
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
notes:java:maven [2018/12/14 17:08] – [Какую информацию содержит pom.xml?] kibi | notes:java:maven [2018/12/19 18:35] (current) – kibi | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== Maven FAQ ====== |
{{tag> | {{tag> | ||
+ | |||
+ | Основные ссылки по Maven: | ||
+ | |||
+ | * [[https:// | ||
+ | * [[https:// | ||
===== Что такое сборка проекта, | ===== Что такое сборка проекта, | ||
- | Сборка (англ. assembly) - двоичный файл, содержащий исполняемый код программы или другой, | + | <wrap em>Сборка (англ. assembly)</ |
<wrap em> | <wrap em> | ||
Line 30: | Line 35: | ||
* Хорошая интеграция со средами разработки. Основные среды разработки на java легко открывают проекты, | * Хорошая интеграция со средами разработки. Основные среды разработки на java легко открывают проекты, | ||
* Как следствие, | * Как следствие, | ||
- | * Декларативное описание проекта. Указано **что** надо сделать, | + | * Декларативное описание проекта. Указано **что, где и когда** надо сделать, |
===== Какие недостатки Maven? ===== | ===== Какие недостатки Maven? ===== | ||
Line 38: | Line 43: | ||
* При таком объёме необходимых знаний документации не так много, особенно по каким-то специальным моментам. Да и просто читать придётся много. Порог вхождения, | * При таком объёме необходимых знаний документации не так много, особенно по каким-то специальным моментам. Да и просто читать придётся много. Порог вхождения, | ||
* Если нужно найти какой-то специальный плагин - это будет сделать непросто, | * Если нужно найти какой-то специальный плагин - это будет сделать непросто, | ||
- | * Нужен доступ в интернет (или придётся разворачивать собственный репозиторий, что трудоёмко) | + | * Нужен доступ в интернет (или придётся разворачивать собственный репозитарий, что трудоёмко) |
* Большие трудности, | * Большие трудности, | ||
Line 72: | Line 77: | ||
| '' | | '' | ||
| '' | | '' | ||
- | | '' | + | | '' |
| '' | | '' | ||
| '' | | '' | ||
| '' | | '' | ||
- | | '' | + | | '' |
| '' | | '' | ||
| '' | | '' | ||
Line 135: | Line 140: | ||
===== Что такое артефакт в Maven? ===== | ===== Что такое артефакт в Maven? ===== | ||
- | <wrap em> | + | <wrap em> |
===== Что такое плагин в Maven? ===== | ===== Что такое плагин в Maven? ===== | ||
Line 149: | Line 154: | ||
<wrap em> | <wrap em> | ||
- | ===== Что такое репозиторий в Maven? ===== | + | ===== Что такое репозитарий в Maven? ===== |
- | <wrap em>Репозиторий (repository)</ | + | <wrap em>репозитарий (repository)</ |
- | ===== Какие типы репозитория существуют в Maven? ===== | + | ===== Какие типы репозитария существуют в Maven? ===== |
- | В Maven существуют три типа репозиториев: | + | В Maven существуют три типа репозитариев: |
- | * **Локальный (local) репозиторий** - это директория, | + | * **Локальный (local) репозитарий** - это директория, |
- | * **Центральный (central) репозиторий** - это репозиторий, который обеспечивается сообществом Maven. Он содержит огромное количество часто используемых библиотек. | + | * **Центральный (central) репозитарий** - это репозитарий, который обеспечивается сообществом Maven. Он содержит огромное количество часто используемых библиотек. |
- | * **Удалённый (remote) репозиторий**. Иногда Maven не может найти необходимые зависимости в центральном репозитории, например при отсутствии интернета. В этом случае процесс сборки прерывается, | + | * **Удалённый (remote) репозитарий**. Иногда Maven не может найти необходимые зависимости в центральном репозитарии, например при отсутствии интернета. В этом случае процесс сборки прерывается, |
- | Какая команда установляет JAR-файл в локальное хранилище? | + | ===== Какая команда устанавливает JAR-файл в локальное хранилище |
- | mvn install | + | |
+ | <code bash>mvn install</ | ||
+ | |||
+ | ===== Какой порядок поиска зависимостей Maven? ===== | ||
- | Какой порядок поиска зависимостей Maven? | ||
Когда мы выполняем собрку проекта в Maven, автоматически начинается поиск необходимых зависимостей в следующем порядке: | Когда мы выполняем собрку проекта в Maven, автоматически начинается поиск необходимых зависимостей в следующем порядке: | ||
- | Поиск зависимостей в локальном репозитории Если зависимости не обнаружены, | + | - Поиск зависимостей в локальном репозитарии. Если зависимости не обнаружены, |
- | Поиск зависимостей в центральном репозитории. Если они не обнаружены и удалённый репозиторий определён, | + | |
- | Если удалённый репозиторий не определён, | + | |
- | Поиск зависимостей на удалённом репозитории, если они найдены, | + | |
+ | |||
+ | ===== Какие два файла настройки есть в Maven, как они называются и где расположены? | ||
+ | |||
+ | В Maven, файлы настройки называются '' | ||
+ | * каталог где установлен Maven: '' | ||
+ | * домашняя директория пользователя: | ||
+ | |||
+ | ===== Что такое жизненный цикл сборки в Maven? ===== | ||
- | Какие два файла настройки есть в Maven, как они называются и где расположены? | + | <wrap em>Жизненный цикл сборки |
- | В Maven, файлы настройки называются settings.xml, | + | |
- | Каталог где установлен Maven: $M2_Home/ | + | |
- | Домашняя | + | |
- | Что такое жизненный цикл сборки | + | ===== Назовите основные фазы жизненного цикла |
- | Жизненный цикл сборки(Lifecycle) - это чётко опредлённая последовательность фаз | + | |
- | Назовите основные фазы жизненного цикла сборки Maven? | ||
Когда Maven начинает сборку проекта, | Когда Maven начинает сборку проекта, | ||
- | В Maven есть следующие 3 стандартных жизненных цикла: | ||
- | Очистка (clean) - очищает артефакты, | ||
- | Сборка (default or build) - используется для создания приложения. | ||
- | Создание сайта проекта (site) - генерирует документацию сайта для проекта. | ||
- | Что делает команда mvn site? | + | В Maven есть следующие три стандартных жизненных цикла: |
- | mvn site - создает | + | * **Очистка (clean)** - очищает |
+ | * **Сборка (default or build)** | ||
+ | * **Создание сайта проекта (site)** | ||
- | Что делает команда mvn clean? | + | ===== Что делает команда mvn site? ===== |
- | mvn clean - эта команда очищает целевую директорию от созданных в процессе сборки файлов. | + | |
+ | <code bash>mvn site</ | ||
+ | |||
+ | ===== Что делает команда mvn clean? | ||
+ | |||
+ | <code bash>mvn clean</ | ||
===== Из каких фаз состоит жизненный цикл сборки Clean? ===== | ===== Из каких фаз состоит жизненный цикл сборки Clean? ===== | ||
Line 220: | Line 233: | ||
* **post-integration-test** - выполняет действия, | * **post-integration-test** - выполняет действия, | ||
* **verify** - выполняет любые проверки для подтверждения того, что пакет пригоден и отвечает критериям качества. | * **verify** - выполняет любые проверки для подтверждения того, что пакет пригоден и отвечает критериям качества. | ||
- | * **install** - переносит пакет в локальный репозиторий, откуда он будет доступен для использования как зависимость в других проектах. | + | * **install** - переносит пакет в локальный репозитарий, откуда он будет доступен для использования как зависимость в других проектах. |
- | * **deploy** - копирует финальный пакет (архив) в удалённый репозиторий для, того, чтобы сделать его доступным другим разработчикам и проектам. | + | * **deploy** - копирует финальный пакет (архив) в удалённый репозитарий для, того, чтобы сделать его доступным другим разработчикам и проектам. |
Здесь также необходимо уточнить два момента: | Здесь также необходимо уточнить два момента: | ||
Line 241: | Line 254: | ||
<code bash>mvn clean dependency: | <code bash>mvn clean dependency: | ||
- | Аргументы '' | + | Аргументы '' |
+ | |||
+ | В этом случае, | ||
===== Что такое профиль сборки (Build Profile)? ===== | ===== Что такое профиль сборки (Build Profile)? ===== | ||
Line 285: | Line 300: | ||
===== Когда Maven использует внешние зависимости? | ===== Когда Maven использует внешние зависимости? | ||
- | Если необходимые файлы не найдены ни в центральном, | + | Если необходимые файлы не найдены ни в центральном, |
===== Что нужно определить для внешней зависимости? | ===== Что нужно определить для внешней зависимости? | ||
Line 302: | Line 317: | ||
===== Что такое SNAPSHOT в Maven? ===== | ===== Что такое SNAPSHOT в Maven? ===== | ||
- | <wrap em> | + | <wrap em> |
===== В чем разница между snapshot и версией? | ===== В чем разница между snapshot и версией? | ||
- | В случае с **обычной версией**, | + | В случае с **обычной версией**, |
В случае со **snapshot**, | В случае со **snapshot**, | ||
Line 325: | Line 340: | ||
* **runtime** - эта область указывает на то, что зависимость не обязательна для '' | * **runtime** - эта область указывает на то, что зависимость не обязательна для '' | ||
* **test** - эта область указывает, | * **test** - эта область указывает, | ||
- | * **system** - эта область похожа на '' | + | * **system** - эта область похожа на '' |
* **import** - эта область используется в зависимости типа '' | * **import** - эта область используется в зависимости типа '' | ||
Line 359: | Line 374: | ||
===== При сборке проекта Maven постоянно проверяет наличие обновлений в интернете. Можете ли вы собрать проект без интернета? | ===== При сборке проекта Maven постоянно проверяет наличие обновлений в интернете. Можете ли вы собрать проект без интернета? | ||
- | Да, можете, | + | Да, можете, |
===== Если при сборке проекта в тестах произошла ошибка, | ===== Если при сборке проекта в тестах произошла ошибка, | ||
Line 388: | Line 403: | ||
* **description** - элемент представляет собой общее описание проекта. Это часто используется в генерации документации Maven | * **description** - элемент представляет собой общее описание проекта. Это часто используется в генерации документации Maven | ||
* **url** - интернет-страница проекта | * **url** - интернет-страница проекта | ||
- | * **repositories** - репозитории для артефактов | + | * **repositories** - репозитарии для артефактов |
- | * **pluginRepositories** - репозитории для плагинов Maven | + | * **pluginRepositories** - репозитарии для плагинов Maven |
< | < |
notes/java/maven.1544796496.txt.gz · Last modified: 2018/12/14 17:08 by kibi