Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Build Tools: Maven

No description
by

Michael Bondarenko

on 14 April 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Build Tools: Maven


Положительное:
- существует дольше остальных
- максимальная скорость сборки
- максимально конфигурируемый

Отрицательное:
- отсутствие встроенных механизмов для зависимостей
- требует огромного времени на начальную настройку

Положительное:
- быстрый для стандартных операций
- огромное количество существующих плагинов
- управление зависимостями

Отрицательное:
- большое количество времни на сборку
- трудно разбивать на части следуя конвенциям

Положительное:
- основан на Groovy, что обеспечивает полный контроль
- минимальная конфигурация
- есть поддержка Ant и Maven

Отрицательное:
- отсутсвие доступной полной информации
- не интуитивно понятный формат конфиг файла
Maven
is a project management tool which encompasses a project object model, a set of standards, a project lifecycle, a dependency management system, and logic for executing plugin goals at defined phases in a lifecycle.
2000
2004
2012
Java Build Tools
Automatic Downloads
Convention
over
Configuration
Plug-Ins
Установка Maven
-
JDK
версии >=5
- скачать Maven с сайта проекта http://maven.apache.org/download.html
- развернуть архив
- прописать переменную окружения
M2_HOME
- прописать путь
$M2_HOME/bin

в
PATH
- запустить в коммандной строке
mvn -version
для проверки
How Maven Works?
Артефакт

Результатом работы Maven являеться построение артефакта, а так же ряд дополнительных действий над ним (тестирование, исталяция в локальный репозиторий, deployment)
Артефакт
, это то что производит наш проект -
jar, war, ear
и т.д.
Координаты артефакта
groupId
- project grouping identifier (no spaces or colons)
artifactid
- name of the project (no spaces or colons)
version
- version of project (Format {Major}.{Minor}.{Maintanence})

log4j
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
POM

POM - Project Object Model, xml файл, обычно называеться pom.xml
POM файл содержит описание проекта (декларативный стиль) и все его специфические настройки
Декларативный стиль описания
Основная концепция Maven в том, что мы следуем стандартным практикам разработки с зафиксированными правилами и настройками по умолчанию.
Пример стандартного размещения файлов
project home
Contains the pom.xml and all subdirectories.
src/main/java
contains the deliverable Java sourcecode for the project.
src/main/resources
Contains the
deliverable resources for the project,
such as property files.
src/test/java
contains the testing Java
sourcecode (JUnit or TestNG test cases,
for example) for the project.
src/test/resources
contains resources
necessary for testing.
Репозитории
Репозиторий maven это файловое хранилище с метаинформацией и быстрым поиском и доступом?
Бывают двух типов:
- local
( находятся в ~/.m2/repository )
- remote
(например, стандартный
http://repo1. maven.org/maven2 или репозиторий компании, например, Nexus).
Используются для хранения и получения зависимостей (dependencies) проекта и плагинов maven
Lifecycle (жизненный цикл) проекта

Существуют три стандартных lifecycles:
clean
- очистка проекта
default
- построение проекта из исходных кодов
site
- построение вторичных артефактов (документация, wiki, сайт и т.п.)
Жизненный цикл состоит из фаз. К каждой фазе может быть привязан ноль или более
goal
-ов различных плагинов.
Mavens Default Lifecycle
(23 фазы)
- validate
- initialize
- generate-sources
- process-sources
- generate-resources
- process-resources
- compile
- process-classes?
- generate-test-sources
- process-test-sources
- generate-test-resources
- process-test-resources
- test-compile
- process-test-classes
- test
- prepare-package
- package
- pre-integration-test
- integration-test
- post-integration-test
- verify
- install
- deploy
Фактический набор фаз:

validate
- validate the project is correct and all necessary information is available

compile
- compile the source code of the project

test
- test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed

package
- take the compiled code and package it in its distributable format, such as a JAR.

integration-test
- process and deploy the package if necessary into anenvironment where integration tests can be run

verify
- run any checks to verify the package is valid and meets quality criteria

install
- install the package into the local repository, for use as a dependencyin other projects locally

deploy
- done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects.
Выполнение фаз default lifecycle

Осуществляется командой
mvn [имя фазы]
При выполнении определенной фазы автоматически последовательно выполняются все предыдущие фазы(т.е. фазы от которых зависит выполняемая):
mvn package
validate -> compile -> test -> package
Full transcript