Maven Flashcards

1
Q

Bild

A

сборка файла двоичного кода

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Автоматизация Bild

A
  • компиляция в бинарник
  • билд
  • тесты
  • деплой на продакшене
  • генерация сопроводительной документации
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Maven что такое

A

фреймворк для автоматизации сборки, компиляции, создания jar, создание дистибутива, создание документации, генерации отчетов, управления зависимостями, релизами.
Если собирать большие проекты с командной строки - то строка будет очень большой - используют bat/sh скрипты. НО они зависят то платформы. Поэтому сделал Maven. Описание сборки через pom.xml.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

недостатки Maven

A

Порог входа по знаниям высокий, нужен интернет либо свой репозиторий.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Как узнать версию maven

A

mvn –version

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Основная структура каталогов Maven

A

pom.xml
src(main(java, resources,filters),test)
target/

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Где хранятся файлы классов при компиляции проектов

A

../target/classes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

pom.xml

A

содержит задачи и плагины в хранится вся информация

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

superpom.xml

A

родительский pom.xml

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Минимальный помник

A

4.0.0
ru.ursip.webservice.machine
machine
1.0.0-SNAPSHOT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

dependences

A

библиотек необходимые проекту

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

plugin

A

зависимость мавена, расширяющая функционал

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

goal

A

задачи, могут быть привязаны к нескольким фазам

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

archetype

A

нестандартная копоновка файлов и каталогов

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

repository

A

глобальное хранилище библиотек, jar, pom,javadoc

local - /.m2/repository

central - http://repol.maven.org/maven2/

remote - определяется разработчиком

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

собрать jar

A

mvn install

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

порядок поиска зависимостей

A

сначала локальный репозиторий
затем глобальный
и если указан удаленный - то в нем

18
Q

LIfeCircle сборки

A

последовательность фаз сборки

  • clean
  • build
  • site //генерирует документацию
19
Q

какой командой создать веб сайт проекта

A

mvn site

20
Q

mvn clean

A

очищает директорию от созданных в процессе сборки файлов

21
Q

Из каких этапов состоит lifecircle clean

A

pre-clean
clean
post-clean

22
Q

lifeCircle build

A

validate - корректность метаинформации о проекте
initialize - инициализирует состояние сборки
generate-sources - включает код в фазу компиляции
process-sources подготавливает исходный код
generate-resources - генерирует ресурсы в директори
compile - компилирует код
process-calsses обработка файлов полученных от компиляции(оптимизация байт-кода)
генерирует ресурсы для тестов
обрабатывает исходники тестов
компилирует их
запускает тесты
упаковывает сборку
интеграционные тесты
верификация пакета
размещение пакета в локальном репозитории
deploy - копирование пакета в удаленный репозиторий

23
Q

Что сделает команда mvn clean dependency:copy-dependencies package

A

сначала выполнится clean, затем задача dependency:copy-dependencies и затем package

24
Q

Профиль сборки

A

Профиль настроек для сборки проекта, настраиваются в pom.xml с помощью элементов activeProfiles / profiles

профиль сборки юзера настраивается в %USER_HOME%/.m2/settings.xml

глобальный профиль сборки в
%M2_home%/conf/settings.xml

25
Q

Зачем плагины

A

для создания jar, war, компиляция кода файлов, Юнит-тесты, Отчеты проектов, генерация Документации

бывают плагины сборки (конфигурируются в ), а бывают для генерации сайта(тогда конфигурируются в )

26
Q

Когда Maven использует внешние зависимости?

A

Если зависимости не найдены ни в локально, ни в центральном репозитории.

27
Q

Как определить внешние зависимости

A
в pom.xml
groupId как имя файла
artifactId как имя файла
Определить область видимости зависимости, как System
указать абсолютный путь к файлу
28
Q

Как создать новый проект на основе архетипа

A

archetype:gererate

29
Q

SNAPSHOT

A

рабочая под-версия сборки, при каждой сборке мавен проверяет новую версию на удаленном репозитории

30
Q

а в чем разница между SNAPSHOT И версией???

A

ПОлучив исходник с версией 1.0 MAVEN не будет пытаться получить новую версию….но будет проверять и подгружать новые версии SANPSHOT

31
Q

Транзитивная зависимость

A

Автоматическая подгрузка библиотек в проект по самому короткому пути из списка зависимых
проектов

32
Q

Какую версию зависимости Maven выберет, когда вариантов несколько

A

Dependency mediation - определяет это, если в дереве зависимостей зависимости находятся на одном уровне, то выберется та, которая была обновлена первой

33
Q

dependency scope

A

области видимости зависимости:
compile - во всех classpath проекта
provided - compilation и test classpath
runtime - эта область указывает на то, что зависимость не обязательна для compilation, но обязательна для фаз выполнения
test - зависимость не обязательная для нормального исполнения
system - эта область похожа на provided за исключением того, что вы предоставляете jar. Артефакт всегда доступен и не смотрит в репозиторий
import - эта область используется в зависимости типа POM в разделе. Это указывает на то, что определенный POM будет заменен зависимостями в этом POM разделе

34
Q

как сослаться на свойство (property) опредленное в pom.xml

A

На все свойста pom.xml, можно сослаться с помощью префиксов “project” или “pom”. Например:
${project.build.directory} - targer директория
${project.build.outputDirectory} - путь куда компилятор складывает файоы по умолчанию “target/classes”
${project.name} - имя проекта

35
Q

зачем

A

содержит информацию для выполнеиня плагина

36
Q

как исключить зависимость в Maven

A

exclusion

37
Q

Что я вляется полным именем артефакта

A

: :

38
Q

Можно ли собрать проект MAVEN без интернета

A

Да, если в локальном репозитории есть все необходимые для сборки артефакты

39
Q

как исключить тесты при сборке

A

mvn install -Dmaven.test.skip=true

40
Q

как запустить только один тест

A

mvn install -Dtest=org.apache.maven.utils.ConverterTest

41
Q

Как остановить наследование плагинов для дочерних Pom

A

установить в false

42
Q
A

определяет какой тип сборки: pom, Jar, war, ear