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

  • 1,571 views
Uploaded on

«История строителя: Maven - от новичка до мастера. Сборка простых и сложных Java- проектов.» …

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

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,571
On Slideshare
0
From Embeds
0
Number of Embeds
41

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. www.ExigenServices.comСборка простых и сложных Java-проектовАнатолий КондратьевАпрель 2013История строителя:Maven от новичка до мастера
  • 2. 2Предназначение Maven• Сборка проектов• Единый стиль– Жизненный цикл– Организация данных• Автоматизация– Сборки– Зависимостей
  • 3. 3Базовая структураМагияMavenКомпьютер ИнтернетLocal reporepo- Artifact 1- Artifact 2- Etc…Central reporepo• Артефакт (Artifact)• Репозиторий (Repository)• Зависимость (Dependency)
  • 4. 4Maven проектpom.xmlИсходный код Ресурсы Бинарные файлыРепозиторииартефактовЖизненный цикл Mavenplug-in plug-in plug-inProjectObjectModelМенеджерзависимостей
  • 5. 5Пример приложенияMaven в действии
  • 6. 6Содержимое проектаGWTapplicationEJB BEJB AMy Library
  • 7. 7Maven: Наследование и АгрегацияParentpomEJB AejbEJB BejbGwtwarMy libraryjar
  • 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. 9Maven в действии• Что насчет развертывания?– Необходим EAR-файл– Необходим дополнительный шаг• Разделение frontend и backend?• NB! Один pom-файл – один артефакт
  • 10. 10Maven в действииParentpomFrontendpomGwtwarFrontendwrapperearBackendpomEJB AejbEJB BejbBackendwrapperearMy libraryjar
  • 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Что ещё может помочьDependency & plugin management,Profiles, Execution blocks
  • 13. 13Dependency&Plugin management• Избавляемся от Copy-Paste• Изменяемые и наследуемые• В родителе– GroupId & ArtifactId– Version– Всё, что может быть сконфигурировано• В наследнике– GroupId & ArtifactId
  • 14. 14Профили в Maven• Профиль – способ сконфигурировать сборку• Разные профили – разные действия– Переименование– Использование разных конфигураций• Активация– Вручную: -Pprofile1,profile2– <activeProfiles>– <activation>
  • 15. 15Конфигурация плагинов• Уровень плагина– Исполнение из командной строки– Стандартный жизненный цикл• Уровень исполнения (настройка Mojo)– Не является частью стандартного жизненного цикла– Разная настройка Mojo для разных окружений– Несколько Mojo для одного плагина
  • 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Спасибо за внимание!