www.ExigenServices.comСборка простых и сложных Java-проектовАнатолий КондратьевАпрель 2013История строителя:Maven от нович...
2Предназначение Maven• Сборка проектов• Единый стиль– Жизненный цикл– Организация данных• Автоматизация– Сборки– Зависимос...
3Базовая структураМагияMavenКомпьютер ИнтернетLocal reporepo- Artifact 1- Artifact 2- Etc…Central reporepo• Артефакт (Arti...
4Maven проектpom.xmlИсходный код Ресурсы Бинарные файлыРепозиторииартефактовЖизненный цикл Mavenplug-in plug-in plug-inPro...
5Пример приложенияMaven в действии
6Содержимое проектаGWTapplicationEJB BEJB AMy Library
7Maven: Наследование и АгрегацияParentpomEJB AejbEJB BejbGwtwarMy libraryjar
8Maven в действии<project …><modelVersion>4.0.0</modelVersion><groupId>ru.exigenservices</groupId><artifactId>my-parent</a...
9Maven в действии• Что насчет развертывания?– Необходим EAR-файл– Необходим дополнительный шаг• Разделение frontend и back...
10Maven в действииParentpomFrontendpomGwtwarFrontendwrapperearBackendpomEJB AejbEJB BejbBackendwrapperearMy libraryjar
11Многомодульная иерархия• Parent pom<project …><groupId>exigen</groupId><artifactId>parent</artifactId><version>1.0.1-SNA...
12Что ещё может помочьDependency & plugin management,Profiles, Execution blocks
13Dependency&Plugin management• Избавляемся от Copy-Paste• Изменяемые и наследуемые• В родителе– GroupId & ArtifactId– Ver...
14Профили в Maven• Профиль – способ сконфигурировать сборку• Разные профили – разные действия– Переименование– Использован...
15Конфигурация плагинов• Уровень плагина– Исполнение из командной строки– Стандартный жизненный цикл• Уровень исполнения (...
16Конфигурация MojoPlugin:time<plugin><groupId>com.mycompany.example</groupId><artifactId>plugin</artifactId><version>1.0<...
17Спасибо за внимание!
Upcoming SlideShare
Loading in …5
×

Анатолий Кондратьев, Exigen Services

1,909 views

Published on

«История строителя: Maven - от новичка до мастера. Сборка простых и сложных Java- проектов.»
BitByte: 20 апреля 2013, Санкт-Петербург
http://bitbyte.itmozg.ru/

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,909
On SlideShare
0
From Embeds
0
Number of Embeds
1,435
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Анатолий Кондратьев, Exigen Services

  1. 1. www.ExigenServices.comСборка простых и сложных Java-проектовАнатолий КондратьевАпрель 2013История строителя:Maven от новичка до мастера
  2. 2. 2Предназначение Maven• Сборка проектов• Единый стиль– Жизненный цикл– Организация данных• Автоматизация– Сборки– Зависимостей
  3. 3. 3Базовая структураМагияMavenКомпьютер ИнтернетLocal reporepo- Artifact 1- Artifact 2- Etc…Central reporepo• Артефакт (Artifact)• Репозиторий (Repository)• Зависимость (Dependency)
  4. 4. 4Maven проектpom.xmlИсходный код Ресурсы Бинарные файлыРепозиторииартефактовЖизненный цикл Mavenplug-in plug-in plug-inProjectObjectModelМенеджерзависимостей
  5. 5. 5Пример приложенияMaven в действии
  6. 6. 6Содержимое проектаGWTapplicationEJB BEJB AMy Library
  7. 7. 7Maven: Наследование и АгрегацияParentpomEJB AejbEJB BejbGwtwarMy libraryjar
  8. 8. 8Maven в действии<project …><modelVersion>4.0.0</modelVersion><groupId>ru.exigenservices</groupId><artifactId>my-parent</artifactId><version>1.0.1-SNAPSHOT</version><packaging>pom</packaging><modules><module>EJB-A</module><module>EJB-B</module><module>Gwt</module><module>MyLibrary</module></modules></project>
  9. 9. 9Maven в действии• Что насчет развертывания?– Необходим EAR-файл– Необходим дополнительный шаг• Разделение frontend и backend?• NB! Один pom-файл – один артефакт
  10. 10. 10Maven в действииParentpomFrontendpomGwtwarFrontendwrapperearBackendpomEJB AejbEJB BejbBackendwrapperearMy libraryjar
  11. 11. 11Многомодульная иерархия• Parent pom<project …><groupId>exigen</groupId><artifactId>parent</artifactId><version>1.0.1-SNAPSHOT</version><packaging>pom</packaging><modules><module>backend</module><module>frontend</module></modules></project>• Frontend pom<project …><parent><groupId>exigen</groupId><artifactId>parent</artifactId><version>1.0.1-SNAPSHOT</version></parent><artifactId>frontend</artifactId><packaging>pom</packaging><modules><module>Gwt</module></modules></project>
  12. 12. 12Что ещё может помочьDependency & plugin management,Profiles, Execution blocks
  13. 13. 13Dependency&Plugin management• Избавляемся от Copy-Paste• Изменяемые и наследуемые• В родителе– GroupId & ArtifactId– Version– Всё, что может быть сконфигурировано• В наследнике– GroupId & ArtifactId
  14. 14. 14Профили в Maven• Профиль – способ сконфигурировать сборку• Разные профили – разные действия– Переименование– Использование разных конфигураций• Активация– Вручную: -Pprofile1,profile2– <activeProfiles>– <activation>
  15. 15. 15Конфигурация плагинов• Уровень плагина– Исполнение из командной строки– Стандартный жизненный цикл• Уровень исполнения (настройка Mojo)– Не является частью стандартного жизненного цикла– Разная настройка Mojo для разных окружений– Несколько Mojo для одного плагина
  16. 16. 16Конфигурация MojoPlugin:time<plugin><groupId>com.mycompany.example</groupId><artifactId>plugin</artifactId><version>1.0</version><executions><execution><id>first</id><phase>test</phase><goals><goal>time</goal></goals><configuration> … </configuration></execution><execution><id>default</id>…<!– No phase block --></execution></executions></plugin>
  17. 17. 17Спасибо за внимание!

×