esoe
2 years ago
1 changed files with 88 additions and 0 deletions
@ -0,0 +1,88 @@ |
|||||||
|
# MAVEN : автоматизация сборки приложений |
||||||
|
# Назначение и область применения |
||||||
|
|
||||||
|
# Основные принципы |
||||||
|
|
||||||
|
# Термины и определения |
||||||
|
>архетип (archetype) - шаблон или макет структуры приложения |
||||||
|
|
||||||
|
>зависимость (dependency) - внешняя библиотека, подключаемая к проекту |
||||||
|
|
||||||
|
>плагин (plugin) - |
||||||
|
|
||||||
|
# Типы формируемых maven пакетов (packages) / package goals |
||||||
|
## jar (Java archive) |
||||||
|
goal : jar |
||||||
|
|
||||||
|
**Фазы проекта jar**: |
||||||
|
- resources: resources |
||||||
|
- compiler: compile |
||||||
|
- resources: testResources |
||||||
|
- compiler: testCompile |
||||||
|
- surefire: test |
||||||
|
- jar: jar |
||||||
|
- install: install |
||||||
|
- deploy: deploy |
||||||
|
|
||||||
|
jar, war ejb, par, rar - имеют схожие жизненные циклы проектов, различается только их цель (goal) |
||||||
|
|
||||||
|
```xml |
||||||
|
<!-- метод упаковки --> |
||||||
|
<packaging>jar</packaging> |
||||||
|
``` |
||||||
|
## war (web application archive) |
||||||
|
goal : war |
||||||
|
|
||||||
|
war-архив может включать: |
||||||
|
- Java servlets |
||||||
|
- JSPs |
||||||
|
- HTML pages |
||||||
|
- a deployment descriptor |
||||||
|
- and related resources |
||||||
|
|
||||||
|
```xml |
||||||
|
<!-- метод упаковки --> |
||||||
|
<packaging>war</packaging> |
||||||
|
``` |
||||||
|
## ear (Enterprise application archive) |
||||||
|
Архив, содержащий сжатый многомодульный проект Java EE, включает один или несколько модулей war, ejb. |
||||||
|
ear архив для развертывания требует наличия сервера приложений. |
||||||
|
|
||||||
|
# Жизненный цикл maven проекта |
||||||
|
Фазы (phase) жизненного цкла проекта maven: |
||||||
|
1. clean — удаляются все скомпилированные файлы из каталога target (место, в котором сохраняются готовые артефакты); |
||||||
|
2. validate — идет проверка, вся ли информация доступна для сборки проекта; |
||||||
|
3. compile — компилируются файлы с исходным кодом; |
||||||
|
4. test — запускаются тесты; |
||||||
|
5. package — упаковываются скомпилированные файлы (в jar, war и т.д. архив); |
||||||
|
6. verify — выполняются проверки для подтверждения готовности упакованного файла; |
||||||
|
7. install — пакет помещается в локальный репозиторий. Теперь он может использоваться другими проектами как внешняя библиотека; |
||||||
|
8. site — создается документация проекта; |
||||||
|
9. deploy — собранный архив копируется в удаленный репозиторий. |
||||||
|
|
||||||
|
Также у каждой фазы есть пре- и пост-фазы: например, pre-deploy, post-deploy, pre-clean, post-clean, но используются они довольно редко. |
||||||
|
|
||||||
|
# Создание приложения из архетипа |
||||||
|
основные мавен архетипы: http://maven.apache.org/guides/introduction/introduction-to-archetypes.html |
||||||
|
|
||||||
|
# Создание собственного архетипа |
||||||
|
|
||||||
|
# Управление зависимостями |
||||||
|
Зависимости могут браться: |
||||||
|
- из центрального (глобального) хранилища maven https://mvnrepository.com/ |
||||||
|
- из стороннего хранилища |
||||||
|
- из локального хранилища (создается на пользовательской мшине, при установке maven) |
||||||
|
|
||||||
|
```xml |
||||||
|
<!-- Объявление зависимостей --> |
||||||
|
<dependency> |
||||||
|
<groupId>[наименование пакета]</groupId> |
||||||
|
<artifactId>[наименование библиотеки]</artifactId> |
||||||
|
<version>[версия]</version> |
||||||
|
</dependency> |
||||||
|
``` |
||||||
|
# Собственный репозиторий |
||||||
|
http://nexus.sonatype.org/ |
||||||
|
https://jfrog.com/ |
||||||
|
https://archiva.apache.org/ |
||||||
|
|
Loading…
Reference in new issue