Киби.ru

Живой сайт об актуальных проектах

User Tools

Site Tools


notes:java:maven

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
notes:java:maven [2018/12/14 17:09] kibinotes:java:maven [2018/12/19 18:35] (current) kibi
Line 1: Line 1:
-====== Вопросы и ответы по Maven ======+====== Maven FAQ ======
  
 {{tag>maven java}} {{tag>maven java}}
 +
 +Основные ссылки по Maven:
 +
 +  * [[https://maven.apache.org/|Сайт проекта]]
 +  * [[https://mvnrepository.com/|Основной репозитарий Maven]]
  
 ===== Что такое сборка проекта, автоматизация сборки? ===== ===== Что такое сборка проекта, автоматизация сборки? =====
  
-Сборка (англ. assembly) - двоичный файл, содержащий исполняемый код программы или другой, подготовленный для использования информационный продукт.+<wrap em>Сборка (англ. assembly)</wrap> - двоичный файл, содержащий исполняемый код программы или другой, подготовленный для использования информационный продукт. Сборка проекта - это в том числе процесс создания необходимого двоичного файла
  
 <wrap em>Автоматизация сборки</wrap> - этап написания скриптов или автоматизация широкого спектра задач применительно к ПО, применяемому разработчиками в их повседневной деятельности, включая такие действия, как: <wrap em>Автоматизация сборки</wrap> - этап написания скриптов или автоматизация широкого спектра задач применительно к ПО, применяемому разработчиками в их повседневной деятельности, включая такие действия, как:
Line 30: Line 35:
   * Хорошая интеграция со средами разработки. Основные среды разработки на java легко открывают проекты, которые собираются c помощью maven. При этом зачастую проект настраивать не нужно: он сразу готов к дальнейшей разработке.    * Хорошая интеграция со средами разработки. Основные среды разработки на java легко открывают проекты, которые собираются c помощью maven. При этом зачастую проект настраивать не нужно: он сразу готов к дальнейшей разработке. 
   * Как следствие, если с проектом работают в разных средах разработки, то maven удобный способ хранения настроек. Настроечный файл среды разработки и для сборки один и тот же - меньше дублирования данных и, соответственно, ошибок.   * Как следствие, если с проектом работают в разных средах разработки, то maven удобный способ хранения настроек. Настроечный файл среды разработки и для сборки один и тот же - меньше дублирования данных и, соответственно, ошибок.
-  * Декларативное описание проекта. Указано **что** надо сделать, а не **как** надо сделать.+  * Декларативное описание проекта. Указано **что, где и когда** надо сделать, а не **как** надо сделать.
  
 ===== Какие недостатки Maven? ===== ===== Какие недостатки Maven? =====
Line 72: Line 77:
 | ''src/main/java'' | Application/Library sources | исходный код приложения или библиотеки | | ''src/main/java'' | Application/Library sources | исходный код приложения или библиотеки |
 | ''src/main/resources'' | Application/Library resources | ресурсы приложения или библиотеки | | ''src/main/resources'' | Application/Library resources | ресурсы приложения или библиотеки |
-| ''src/main/filters'' | Resource filter files |  |+| ''src/main/filters'' | Resource filter files | файлы с параметрами фильтрации ресурсов |
 | ''src/main/webapp'' | Web application sources | исходный код веб-приложения | | ''src/main/webapp'' | Web application sources | исходный код веб-приложения |
 | ''src/test/java'' | Test sources | исходный код тестов (юнит-тестов) | | ''src/test/java'' | Test sources | исходный код тестов (юнит-тестов) |
 | ''src/test/resources'' | Test resources | ресурсы юнит тестов | | ''src/test/resources'' | Test resources | ресурсы юнит тестов |
-| ''src/test/filters'' | Test resource filter files |  |+| ''src/test/filters'' | Test resource filter files | файлы с параметрами фильтрации ресурсов для тестов |
 | ''src/it'' | Integration Tests (primarily for plugins) | интеграционные тесты (в основном для плагинов) | | ''src/it'' | Integration Tests (primarily for plugins) | интеграционные тесты (в основном для плагинов) |
 | ''src/assembly'' | Assembly descriptors | дескрипторы сборки | | ''src/assembly'' | Assembly descriptors | дескрипторы сборки |
Line 157: Line 162:
 В Maven существуют три типа репозитариев: В Maven существуют три типа репозитариев:
   * **Локальный (local) репозитарий** - это директория, которая хранится на нашем компьютере. Она создаётся в момент первого выполнения любой команды Maven. По умолчанию она расположена в <home директория>/.m2/repository - персональная для каждого пользователя. Фактически она является кэшем для центрального и удалённого репозитариев.   * **Локальный (local) репозитарий** - это директория, которая хранится на нашем компьютере. Она создаётся в момент первого выполнения любой команды Maven. По умолчанию она расположена в <home директория>/.m2/repository - персональная для каждого пользователя. Фактически она является кэшем для центрального и удалённого репозитариев.
-  * **Центральный (central) репозитарий** - это репозитарий, который обеспечивается сообществом Maven. Он содержит огромное количество часто используемых библиотек. Который расположен в http://repo1.maven.org/maven2/ и доступен на чтение для всех пользователей в интернете. Если Maven не может найти зависимости в локальном репозитарии, то автоматически начинается поиск необходимых файлов в центральном репозитарии+  * **Центральный (central) репозитарий** - это репозитарий, который обеспечивается сообществом Maven. Он содержит огромное количество часто используемых библиотек. Расположен по адресу http://repo1.maven.org/maven2/ и доступен на чтение для всех пользователей в интернете. Если Maven не может найти зависимости в локальном репозитарии, то автоматически начинается поиск необходимых файлов в центральном репозитарии. Для поиска по центральному репозитарию можно использовать сайт https://mvnrepository.com/
   * **Удалённый (remote) репозитарий**. Иногда Maven не может найти необходимые зависимости в центральном репозитарии, например при отсутствии интернета. В этом случае процесс сборки прерывается, и в консоль выводится сообщение об ошибке. Для того, чтобы предотвратить подобную ситуацию, в Maven предусмотрен механизм **удалённого репозитария**, который является репозитарием, определённым самим разработчиком. Там могут храниться все необходимые зависимости.   * **Удалённый (remote) репозитарий**. Иногда Maven не может найти необходимые зависимости в центральном репозитарии, например при отсутствии интернета. В этом случае процесс сборки прерывается, и в консоль выводится сообщение об ошибке. Для того, чтобы предотвратить подобную ситуацию, в Maven предусмотрен механизм **удалённого репозитария**, который является репозитарием, определённым самим разработчиком. Там могут храниться все необходимые зависимости.
  
-Какая команда установляет JAR-файл в локальное хранилище? +===== Какая команда устанавливает JAR-файл в локальное хранилище (репозитарий)===== 
-mvn install+ 
 +<code bash>mvn install</code> 
 + 
 +===== Какой порядок поиска зависимостей Maven? =====
  
-Какой порядок поиска зависимостей Maven? 
 Когда мы выполняем собрку проекта в Maven, автоматически начинается поиск необходимых зависимостей в следующем порядке: Когда мы выполняем собрку проекта в Maven, автоматически начинается поиск необходимых зависимостей в следующем порядке:
-Поиск зависимостей в локальном репозитарии Если зависимости не обнаружены, происходит переход к шагу 2. +  - Поиск зависимостей в локальном репозитарииЕсли зависимости не обнаружены, происходит переход к шагу 2. 
-Поиск зависимостей в центральном репозитарии. Если они не обнаружены и удалённый репозитарий определён, то происходит переход к шагу 4. +  Поиск зависимостей в центральном репозитарии. Если они не обнаружены и удалённый репозитарий определён, то происходит переход к шагу 4. 
-Если удалённый репозитарий не определён, то процесс сборки прекращается и выводится сообщение об ошибке. +  Если удалённый репозитарий не определён, то процесс сборки прекращается и выводится сообщение об ошибке. 
-Поиск зависимостей на удалённом репозитарии, если они найдены, то происходит их загрузка в локальный репозитарий, если нет - выводится сообщение об ошибке.+  Поиск зависимостей на удалённом репозитарии, если они найдены, то происходит их загрузка в локальный репозитарий, если нет - выводится сообщение об ошибке. 
 + 
 +===== Какие два файла настройки есть в Maven, как они называются и где расположены? ===== 
 + 
 +В Maven, файлы настройки называются ''settings.xml'', и они расположены в двух местах: 
 +  * каталог где установлен Maven: ''$M2_Home/conf/settings.xml'' 
 +  * домашняя директория пользователя: ''${user.home}/.m2/settings.xml'' 
 + 
 +===== Что такое жизненный цикл сборки в Maven? =====
  
-Какие два файла настройки есть в Maven, как они называются и где расположены? +<wrap em>Жизненный цикл сборки (Lifecycle)</wrap> - это чётко определённая последовательность фазво время выполнения которых должны быть достигнуты определённые цели. Здесь фаза представляет собой стадию жизненного цикла.
-В Maven, файлы настройки называются settings.xml, и они расположены в двох местах: +
-Каталог где установлен Maven: $M2_Home/conf/settings.xml +
-Домашняя директория пользователя: ${user.home}/.m2/settings.xml+
  
-Что такое жизненный цикл сборки в Maven? +===== Назовите основные фазы жизненного цикла сборки Maven? =====
-Жизненный цикл сборки(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</code> создает веб-сайт проекта. 
 + 
 +===== Что делает команда mvn clean? ===== 
 + 
 +<code bash>mvn clean</code> эта команда очищает целевую директорию от созданных в процессе сборки файлов.
  
 ===== Из каких фаз состоит жизненный цикл сборки Clean? ===== ===== Из каких фаз состоит жизненный цикл сборки Clean? =====
Line 241: Line 254:
 <code bash>mvn clean dependency:copy-dependencies package</code>  <code bash>mvn clean dependency:copy-dependencies package</code> 
  
-Аргументы ''clean'' и ''package'' являются фазами сборки до тех пор, пока "''dependency:copy-dependencies''" является задачей. В этом случае, сначала будет выполнена фаза clean, после этого будет выполнена задача "''dependency:copy-dependencies''". После чего будет выполнена фаза ''package''.+Аргументы ''clean'' и ''package'' являются фазами сборки, в то время как "''dependency:copy-dependencies''" является задачей.  
 + 
 +В этом случае, сначала будет выполнена фаза clean, после этого будет выполнена задача "''dependency:copy-dependencies''". После чего будет выполнена фаза ''package''.
  
 ===== Что такое профиль сборки (Build Profile)? ===== ===== Что такое профиль сборки (Build Profile)? =====
notes/java/maven.1544796545.txt.gz · Last modified: 2018/12/14 17:09 by kibi

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki