Maven как средство сборки проекта

1,478 views
1,406 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
1,478
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Maven как средство сборки проекта

  1. 1. 1 Докладчик: Раскосов Александр email: [email_address] skype: ralexander13
  2. 2. <ul><ul><li>Обзор существующих framework’ ов для сборки проекта </li></ul></ul><ul><ul><li>Обзор механизма работы maven </li></ul></ul><ul><ul><li>Пример1. Использование COS (Cloud Oriented Storage) как maven репозитория </li></ul></ul><ul><ul><li>Пример2. Maven плагин для оптимизации JavaScript </li></ul></ul>2
  3. 3. <ul><li>ANT </li></ul><ul><ul><li>Большое количество стандартных заданий (> 150 ) </li></ul></ul><ul><ul><li>Большая гибкость при разработке скрипта для сборки </li></ul></ul>3
  4. 4. <ul><li>Ivy </li></ul><ul><ul><li>Менеджер зависимостей для Ant </li></ul></ul><ul><ul><li>По умолчанию использует maven2 репозиторий </li></ul></ul>4
  5. 5. <ul><li>Maven </li></ul><ul><ul><li>Описание структыры проекта, а не только механизма сборки (независимость от IDE ) </li></ul></ul><ul><ul><li>Автономный репозиторий сторонних библиотек (> 253 000) </li></ul></ul><ul><ul><li>Лёгкое подключение модулей </li></ul></ul><ul><ul><li>Большой набор плагинов (> 50) </li></ul></ul><ul><ul><li>Поддержка Ant </li></ul></ul>5
  6. 6. <ul><li>Статистика использования </li></ul><ul><li>Ant - ? </li></ul><ul><li>Ivy - ? </li></ul><ul><li>Maven – ? + Раскосов Александр </li></ul>6
  7. 7. Жизненный цикл maven 7
  8. 8. Пример 1 Использование COS ( Cloud Oriented Storage ) как maven репозитория 8
  9. 9. <ul><li>Использование COS как maven репозитория </li></ul><ul><ul><li>При сохранении в репозиторий: </li></ul></ul><ul><ul><ul><li>Поддержка только FTP и SSH </li></ul></ul></ul><ul><ul><ul><li>Сторонняя библиотека только для Amazon S3 </li></ul></ul></ul>9
  10. 10. Использование COS как maven репозитория public class AtmosWagon extends AbstractWagon { public void put(File source, String destination) {…} public boolean getIfNewer( String resourceName, File destination, long timestamp) {…} public void get(String resourceName, File destination) {…} } 1 0
  11. 11. Использование COS как maven репозитория ../resources/META-INF/plexus/components.xml < component-set > < components > < component > < role >org.apache.maven.wagon.Wagon</ role > < role-hint >atmos</ role-hint > < implementation > com.maestro.maven.wagon.atmos.AtmosWagon </ implementation > < instantiation-strategy >per-lookup</ instantiation-strategy > </ component > </ components > </ component-set > 11
  12. 12. <ul><li>Использование COS как maven репозитория </li></ul><ul><ul><li>При чтении из репозитория: </li></ul></ul><ul><ul><ul><li>Необходимость конфигурации maven для использования сертификатов для работы с репозиторием по https </li></ul></ul></ul>12
  13. 13. Пример 2 Maven плагин для оптимизации JavaScript 13
  14. 14. <ul><li>Maven плагин для компиляции и оптимизации JavaScript </li></ul><ul><ul><li>Стандартные механизмы: </li></ul></ul><ul><ul><ul><li>Скачиваемое Java приложение </li></ul></ul></ul><ul><ul><ul><li>Работа через web приложение </li></ul></ul></ul>14
  15. 15. Maven плагин для компиляции и оптимизации JavaScript /** * @goal run * @phase compile */ public class GoogleCompilerMojo extends AbstractMojo { /** * @parameter expression=&quot;false“ */ private boolean skip; public void execute() throws MojoExecutionException, MojoFailureException {…} } 15
  16. 16. Maven плагин для компиляции и оптимизации JavaScript ../pom.xml … < packaging >maven-plugin</ packaging > … 1 6
  17. 17. <ul><li>Вопросы??? </li></ul>1 7

×