SlideShare a Scribd company logo
Work with Maven in Java
For students of
universities
Author : Oxana
Dudnik
- Java :Мавен это инструмент для сборки проекта
, jar,компиляции создания создания дистрибутива
, .программы генерации документации Простые
.проекты можно собрать в командной строке Если
,собирать большие проекты с командной строки то
,команда для сборки будет очень длинной поэтому
bat/sh .её иногда записывают в скрипт Но такие
.скрипты зависят от платформы Для того чтобы
избавиться от этой зависимостии и упростить
написание скрипта используют инструменты для
.сборки проекта
Lifecycle phases
• generate-sources: Generates any extra source code needed for the
application, which is generally accomplished using the appropriate
plug-ins
• compile: Compiles the project source code
• test-compile: Compiles the project unit tests
• test: Runs the unit tests (typically using JUnit) in the src/test
directory
• package: Packages the compiled code in its distributable format
(JAR, WAR, etc.)
• integration-test: Processes and deploys the package if necessary
into an environment where integration tests can be run
• install: Installs the package into the local repository for use as a
dependency in other projects on your local machine
• deploy: Done in an integration or release environment, copies the
final package to the remote repository for sharing with other
developers and projects
Maven & repository
=Зайдите на официальный сайт мавен в раздел загрузка
http://maven.apache.org/download.cgi
и скачайте последнюю стабильную версию.
=Распакуйте архив в инсталляционную директорию. Например в
C:Program Filesmaven в Windows или /opt/maven в Linux
=Установите переменную окружения M2_HOME:
В Windows кликните правой кнопкой мыши на "мой компьютер"
->свойства->дополнительные параметры->переменные среды-
>системные переменные и там добавьте "M2_HOME" и " C:Program
Filesmaven" .
В Linux можно добавить строку "export M2_HOME=/opt/maven"в файл
/etc/profile .
=Установите переменную окружения PATH В Windows в переменной PATH
добавьте к списку директорий строку %M2_HOME%bin". В Linux можно
добавить строку "export PATH=$PATH:$M2_HOME/bin"в файл /etc/profile .
=Проверьте корректность установки, набрав в командной строке
• Давайте создадим новый проект. Для
этого выполним команду:
• mvn archetype:generate
• Импортируем проект из созданных
исходников с помощью IntelliJIdea и
получим проект:
Стандартная структура проекта
The Maven directory structure
• src/main/java: Your Java source code goes here (strangely
enough!)
• src/main/resources: Other resources your application needs
• src/main/filters: Resource filters, in the form of properties files,
which may be used to define variables only known at runtime
• src/main/config: Configuration files
• src/main/webapp: The Web application directory for a WAR project
• src/test/java: Unit tests
• src/test/resources: Resources to be used for unit tests, but will not
be deployed
• src/test/filters: Resources filters to be used for unit tests, but will
not be deployed
• src/site: Files used to generate the Maven project Website
Главный файл Maven – pom.xml
• <project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.javaworld.hotels</groupId>
<artifactId>HotelDatabase</artifactId>
<packaging>war</packaging>
• <version>1.0-SNAPSHOT</version>
• <name>Maven Quick Start Archetype</name>
<url>http://maven.apache.org</url>
• <dependencies>
• <dependency>
• <groupId>junit</groupId>
• <artifactId>junit</artifactId>
• <version>3.8.1</version>
• <scope>test</scope>
• </dependency>
• </dependencies>
• </project>
Dependency scopes
• compile: A compile-scope dependency is available in all phases. This
is the default value.
• provided: A provided dependency is used to compile the application,
but will not be deployed. You would use this scope when you expect
the JDK or application server to provide the JAR. The servlet APIs are
a good example.
• runtime: Runtime-scope dependencies are not needed for
compilation, only for execution, such as JDBC (Java Database
Connectivity) drivers.
• test: Test-scope dependencies are needed only to compile and run
tests (JUnit, for example).
• Создадим web-приоожение, в котором будет 2 модуля:
• HotelDatabase и HotelWebApp
• A business logic component: HotelDatabase.jar
• A Web application component: HotelWebApp.war
•
First web-application by Maven
Отредактируем конфигурацию
Запустим JBOSS -server
Server запустился, компоненты
задеплоились:
А теперь запустим приложение
Literature
• http://tutorials.jenkov.com/maven/maven-tutori
• http://www.javatpoint.com/maven-tutorial
• http://www.apache-maven.ru/
• https://www.youtube.com/watch?v=HKAq5NY9

More Related Content

What's hot

Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникПодводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
SQALab
 
Docker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous IntegrationDocker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous Integration
COMAQA.BY
 
Иван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проектаИван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проектаYandex
 
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр КовалевПакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Positive Hack Days
 
Любовь Поволоцкая_Сборка Android-приложений с помощью Gradle
Любовь Поволоцкая_Сборка Android-приложений с помощью GradleЛюбовь Поволоцкая_Сборка Android-приложений с помощью Gradle
Любовь Поволоцкая_Сборка Android-приложений с помощью GradleGeeksLab Odessa
 
Silverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопеSilverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопе
Alex Tumanoff
 
Gradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidGradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidAnton Rutkevich
 
Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir Webdriver
Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir WebdriverТестирование web-приложений на базе технологий Ruby/Cucumber/Watir Webdriver
Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir Webdriver
Alex Mikitenko
 
Sql server clr integration
Sql server clr integration Sql server clr integration
Sql server clr integration
Alex Tumanoff
 
системы сборок проектов
системы сборок проектовсистемы сборок проектов
системы сборок проектов
Romero78
 
"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov
Fwdays
 
Введение в maven
Введение в mavenВведение в maven
Введение в maven
Dmitry Zinushin
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
DataArt
 
React Native в продакшне
React Native в продакшнеReact Native в продакшне
React Native в продакшне
Eugeni Feudorov
 
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Fwdays
 
"React application structure at project start", Maksym Shestopal
"React application structure at project start", Maksym Shestopal"React application structure at project start", Maksym Shestopal
"React application structure at project start", Maksym Shestopal
Fwdays
 
Готовим Docker для Автоматизации Тестирования
Готовим Docker для Автоматизации ТестированияГотовим Docker для Автоматизации Тестирования
Готовим Docker для Автоматизации Тестирования
COMAQA.BY
 
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
Andriy Yun
 
Тестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях ИнтернетаТестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях Интернета
SQALab
 
SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting
 SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting
SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting
Oleg Nenashev
 

What's hot (20)

Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникПодводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
 
Docker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous IntegrationDocker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous Integration
 
Иван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проектаИван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проекта
 
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр КовалевПакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
 
Любовь Поволоцкая_Сборка Android-приложений с помощью Gradle
Любовь Поволоцкая_Сборка Android-приложений с помощью GradleЛюбовь Поволоцкая_Сборка Android-приложений с помощью Gradle
Любовь Поволоцкая_Сборка Android-приложений с помощью Gradle
 
Silverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопеSilverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопе
 
Gradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidGradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для Android
 
Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir Webdriver
Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir WebdriverТестирование web-приложений на базе технологий Ruby/Cucumber/Watir Webdriver
Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir Webdriver
 
Sql server clr integration
Sql server clr integration Sql server clr integration
Sql server clr integration
 
системы сборок проектов
системы сборок проектовсистемы сборок проектов
системы сборок проектов
 
"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov"Web Vitals monitoring & optimizations", Erik Himiranov
"Web Vitals monitoring & optimizations", Erik Himiranov
 
Введение в maven
Введение в mavenВведение в maven
Введение в maven
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
 
React Native в продакшне
React Native в продакшнеReact Native в продакшне
React Native в продакшне
 
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
 
"React application structure at project start", Maksym Shestopal
"React application structure at project start", Maksym Shestopal"React application structure at project start", Maksym Shestopal
"React application structure at project start", Maksym Shestopal
 
Готовим Docker для Автоматизации Тестирования
Готовим Docker для Автоматизации ТестированияГотовим Docker для Автоматизации Тестирования
Готовим Docker для Автоматизации Тестирования
 
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
Comfortable drupal project development. Useful modules (Andriy Yun, studio de...
 
Тестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях ИнтернетаТестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях Интернета
 
SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting
 SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting
SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting
 

Similar to Apache maven in java projects

Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктуройdddpaul
 
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемыMoscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Oleg Nenashev
 
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Ontico
 
Стажировка-2013, разработчики, занятие 6. Внешние конфиги, сборка, автотесты
Стажировка-2013, разработчики, занятие 6. Внешние конфиги, сборка, автотестыСтажировка-2013, разработчики, занятие 6. Внешние конфиги, сборка, автотесты
Стажировка-2013, разработчики, занятие 6. Внешние конфиги, сборка, автотесты7bits
 
Виртуализация как инструмент разработчика
Виртуализация как инструмент разработчикаВиртуализация как инструмент разработчика
Виртуализация как инструмент разработчикаAlexander Kirillov
 
Виртуализация как инструмент разработчика
Виртуализация как инструмент разработчикаВиртуализация как инструмент разработчика
Виртуализация как инструмент разработчика
Open-IT
 
Стажировка-2014, занятие 3. Конфиги, сборка, автоматические тесты.
Стажировка-2014, занятие 3. Конфиги, сборка, автоматические тесты.Стажировка-2014, занятие 3. Конфиги, сборка, автоматические тесты.
Стажировка-2014, занятие 3. Конфиги, сборка, автоматические тесты.7bits
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
Pavel Tsukanov
 
NPM и модульная архитектура приложения
NPM и модульная архитектура приложенияNPM и модульная архитектура приложения
NPM и модульная архитектура приложения
Denis Latushkin
 
Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...
Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...
Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...
IT Event
 
Android - 06 - Gradle
Android - 06 - GradleAndroid - 06 - Gradle
Android - 06 - Gradle
Noveo
 
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON
 
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Александр Егурцов
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 4
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 4Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 4
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 47bits
 
Инструменты разработки ПО в *nix
Инструменты разработки ПО в *nixИнструменты разработки ПО в *nix
Инструменты разработки ПО в *nix
Alexander Gerasiov
 
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотестыСтажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
7bits
 
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Fedor Lavrentyev
 
Workflow: работа над проектом в Яндексе
Workflow: работа над проектом в ЯндексеWorkflow: работа над проектом в Яндексе
Workflow: работа над проектом в Яндексе
Denis Chistyakov
 
Обзор Continuous integration инструментов
Обзор Continuous integration инструментовОбзор Continuous integration инструментов
Обзор Continuous integration инструментов
Vitalii Morvaniuk
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеYandex
 

Similar to Apache maven in java projects (20)

Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктурой
 
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемыMoscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
 
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
 
Стажировка-2013, разработчики, занятие 6. Внешние конфиги, сборка, автотесты
Стажировка-2013, разработчики, занятие 6. Внешние конфиги, сборка, автотестыСтажировка-2013, разработчики, занятие 6. Внешние конфиги, сборка, автотесты
Стажировка-2013, разработчики, занятие 6. Внешние конфиги, сборка, автотесты
 
Виртуализация как инструмент разработчика
Виртуализация как инструмент разработчикаВиртуализация как инструмент разработчика
Виртуализация как инструмент разработчика
 
Виртуализация как инструмент разработчика
Виртуализация как инструмент разработчикаВиртуализация как инструмент разработчика
Виртуализация как инструмент разработчика
 
Стажировка-2014, занятие 3. Конфиги, сборка, автоматические тесты.
Стажировка-2014, занятие 3. Конфиги, сборка, автоматические тесты.Стажировка-2014, занятие 3. Конфиги, сборка, автоматические тесты.
Стажировка-2014, занятие 3. Конфиги, сборка, автоматические тесты.
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
 
NPM и модульная архитектура приложения
NPM и модульная архитектура приложенияNPM и модульная архитектура приложения
NPM и модульная архитектура приложения
 
Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...
Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...
Александр Сычев "Статика и динамика. Как фреймворки помогут прокачать ваше пр...
 
Android - 06 - Gradle
Android - 06 - GradleAndroid - 06 - Gradle
Android - 06 - Gradle
 
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
 
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 4
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 4Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 4
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 4
 
Инструменты разработки ПО в *nix
Инструменты разработки ПО в *nixИнструменты разработки ПО в *nix
Инструменты разработки ПО в *nix
 
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотестыСтажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
 
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
Industrial Programming Java - Lection Pack 01 - Building an application - Lav...
 
Workflow: работа над проектом в Яндексе
Workflow: работа над проектом в ЯндексеWorkflow: работа над проектом в Яндексе
Workflow: работа над проектом в Яндексе
 
Обзор Continuous integration инструментов
Обзор Continuous integration инструментовОбзор Continuous integration инструментов
Обзор Continuous integration инструментов
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
 

More from Asya Dudnik

Get started with docker &amp; dev ops
Get started with docker &amp; dev opsGet started with docker &amp; dev ops
Get started with docker &amp; dev ops
Asya Dudnik
 
Get started with docker &amp; dev ops
Get started with docker &amp; dev opsGet started with docker &amp; dev ops
Get started with docker &amp; dev ops
Asya Dudnik
 
Work with my_sql_-_database_in_java
Work with my_sql_-_database_in_javaWork with my_sql_-_database_in_java
Work with my_sql_-_database_in_java
Asya Dudnik
 
Oracle database
Oracle databaseOracle database
Oracle database
Asya Dudnik
 
Work with xml in java
Work with xml in javaWork with xml in java
Work with xml in java
Asya Dudnik
 
Jdbc in java
Jdbc in javaJdbc in java
Jdbc in java
Asya Dudnik
 
Java.fundamentals
Java.fundamentalsJava.fundamentals
Java.fundamentals
Asya Dudnik
 
Data bases in pictures
Data bases in picturesData bases in pictures
Data bases in pictures
Asya Dudnik
 
использование Hibernate java persistence.part 4.
использование Hibernate java persistence.part 4.использование Hibernate java persistence.part 4.
использование Hibernate java persistence.part 4.Asya Dudnik
 
Hibernate&ejb3 . part3.
Hibernate&ejb3 . part3.Hibernate&ejb3 . part3.
Hibernate&ejb3 . part3.
Asya Dudnik
 
использование Hibernate java persistence.part 2.
использование Hibernate java persistence.part 2.использование Hibernate java persistence.part 2.
использование Hibernate java persistence.part 2.
Asya Dudnik
 
Work with my sql database in java
Work with my sql   database in javaWork with my sql   database in java
Work with my sql database in java
Asya Dudnik
 
Java.fundamentals
Java.fundamentalsJava.fundamentals
Java.fundamentals
Asya Dudnik
 
Web&java. gwt
Web&java. gwtWeb&java. gwt
Web&java. gwt
Asya Dudnik
 
Web&java.jsf.
Web&java.jsf.Web&java.jsf.
Web&java.jsf.
Asya Dudnik
 
Web&java. jsp
Web&java. jspWeb&java. jsp
Web&java. jsp
Asya Dudnik
 
Java fx for interface
Java fx for interfaceJava fx for interface
Java fx for interface
Asya Dudnik
 
Java fx for interface
Java fx for interfaceJava fx for interface
Java fx for interface
Asya Dudnik
 
Threads in java
Threads in javaThreads in java
Threads in java
Asya Dudnik
 

More from Asya Dudnik (20)

Get started with docker &amp; dev ops
Get started with docker &amp; dev opsGet started with docker &amp; dev ops
Get started with docker &amp; dev ops
 
Get started with docker &amp; dev ops
Get started with docker &amp; dev opsGet started with docker &amp; dev ops
Get started with docker &amp; dev ops
 
Work with my_sql_-_database_in_java
Work with my_sql_-_database_in_javaWork with my_sql_-_database_in_java
Work with my_sql_-_database_in_java
 
Oracle database
Oracle databaseOracle database
Oracle database
 
Work with xml in java
Work with xml in javaWork with xml in java
Work with xml in java
 
Jdbc in java
Jdbc in javaJdbc in java
Jdbc in java
 
Java.fundamentals
Java.fundamentalsJava.fundamentals
Java.fundamentals
 
Data bases in pictures
Data bases in picturesData bases in pictures
Data bases in pictures
 
использование Hibernate java persistence.part 4.
использование Hibernate java persistence.part 4.использование Hibernate java persistence.part 4.
использование Hibernate java persistence.part 4.
 
Hibernate&ejb3 . part3.
Hibernate&ejb3 . part3.Hibernate&ejb3 . part3.
Hibernate&ejb3 . part3.
 
использование Hibernate java persistence.part 2.
использование Hibernate java persistence.part 2.использование Hibernate java persistence.part 2.
использование Hibernate java persistence.part 2.
 
Work with my sql database in java
Work with my sql   database in javaWork with my sql   database in java
Work with my sql database in java
 
Java.fundamentals
Java.fundamentalsJava.fundamentals
Java.fundamentals
 
Web&java. gwt
Web&java. gwtWeb&java. gwt
Web&java. gwt
 
Web&java.jsf.
Web&java.jsf.Web&java.jsf.
Web&java.jsf.
 
Web&java. jsp
Web&java. jspWeb&java. jsp
Web&java. jsp
 
Web&java. jsp
Web&java. jspWeb&java. jsp
Web&java. jsp
 
Java fx for interface
Java fx for interfaceJava fx for interface
Java fx for interface
 
Java fx for interface
Java fx for interfaceJava fx for interface
Java fx for interface
 
Threads in java
Threads in javaThreads in java
Threads in java
 

Apache maven in java projects

  • 1. Work with Maven in Java For students of universities Author : Oxana Dudnik
  • 2. - Java :Мавен это инструмент для сборки проекта , jar,компиляции создания создания дистрибутива , .программы генерации документации Простые .проекты можно собрать в командной строке Если ,собирать большие проекты с командной строки то ,команда для сборки будет очень длинной поэтому bat/sh .её иногда записывают в скрипт Но такие .скрипты зависят от платформы Для того чтобы избавиться от этой зависимостии и упростить написание скрипта используют инструменты для .сборки проекта
  • 3.
  • 4. Lifecycle phases • generate-sources: Generates any extra source code needed for the application, which is generally accomplished using the appropriate plug-ins • compile: Compiles the project source code • test-compile: Compiles the project unit tests • test: Runs the unit tests (typically using JUnit) in the src/test directory • package: Packages the compiled code in its distributable format (JAR, WAR, etc.) • integration-test: Processes and deploys the package if necessary into an environment where integration tests can be run • install: Installs the package into the local repository for use as a dependency in other projects on your local machine • deploy: Done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects
  • 5.
  • 7. =Зайдите на официальный сайт мавен в раздел загрузка http://maven.apache.org/download.cgi и скачайте последнюю стабильную версию. =Распакуйте архив в инсталляционную директорию. Например в C:Program Filesmaven в Windows или /opt/maven в Linux =Установите переменную окружения M2_HOME: В Windows кликните правой кнопкой мыши на "мой компьютер" ->свойства->дополнительные параметры->переменные среды- >системные переменные и там добавьте "M2_HOME" и " C:Program Filesmaven" . В Linux можно добавить строку "export M2_HOME=/opt/maven"в файл /etc/profile . =Установите переменную окружения PATH В Windows в переменной PATH добавьте к списку директорий строку %M2_HOME%bin". В Linux можно добавить строку "export PATH=$PATH:$M2_HOME/bin"в файл /etc/profile . =Проверьте корректность установки, набрав в командной строке
  • 8. • Давайте создадим новый проект. Для этого выполним команду: • mvn archetype:generate • Импортируем проект из созданных исходников с помощью IntelliJIdea и получим проект:
  • 9.
  • 11. The Maven directory structure • src/main/java: Your Java source code goes here (strangely enough!) • src/main/resources: Other resources your application needs • src/main/filters: Resource filters, in the form of properties files, which may be used to define variables only known at runtime • src/main/config: Configuration files • src/main/webapp: The Web application directory for a WAR project • src/test/java: Unit tests • src/test/resources: Resources to be used for unit tests, but will not be deployed • src/test/filters: Resources filters to be used for unit tests, but will not be deployed • src/site: Files used to generate the Maven project Website
  • 12. Главный файл Maven – pom.xml • <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.javaworld.hotels</groupId> <artifactId>HotelDatabase</artifactId> <packaging>war</packaging> • <version>1.0-SNAPSHOT</version> • <name>Maven Quick Start Archetype</name> <url>http://maven.apache.org</url> • <dependencies> • <dependency> • <groupId>junit</groupId> • <artifactId>junit</artifactId> • <version>3.8.1</version> • <scope>test</scope> • </dependency> • </dependencies> • </project>
  • 13. Dependency scopes • compile: A compile-scope dependency is available in all phases. This is the default value. • provided: A provided dependency is used to compile the application, but will not be deployed. You would use this scope when you expect the JDK or application server to provide the JAR. The servlet APIs are a good example. • runtime: Runtime-scope dependencies are not needed for compilation, only for execution, such as JDBC (Java Database Connectivity) drivers. • test: Test-scope dependencies are needed only to compile and run tests (JUnit, for example).
  • 14. • Создадим web-приоожение, в котором будет 2 модуля: • HotelDatabase и HotelWebApp • A business logic component: HotelDatabase.jar • A Web application component: HotelWebApp.war •
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 22.
  • 25. А теперь запустим приложение
  • 26. Literature • http://tutorials.jenkov.com/maven/maven-tutori • http://www.javatpoint.com/maven-tutorial • http://www.apache-maven.ru/ • https://www.youtube.com/watch?v=HKAq5NY9