diff --git a/maven/README.md b/maven/README.md new file mode 100644 index 0000000..63f9837 --- /dev/null +++ b/maven/README.md @@ -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 + +jar +``` +## war (web application archive) +goal : war + +war-архив может включать: +- Java servlets +- JSPs +- HTML pages +- a deployment descriptor +- and related resources + +```xml + +war +``` +## 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 + + + [наименование пакета] + [наименование библиотеки] + [версия] + +``` +# Собственный репозиторий +http://nexus.sonatype.org/ +https://jfrog.com/ +https://archiva.apache.org/ +