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

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

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
Зачем плагины
для создания jar, war, компиляция кода файлов, Юнит-тесты, Отчеты проектов, генерация Документации бывают плагины сборки (конфигурируются в ), а бывают для генерации сайта(тогда конфигурируются в )
26
Когда Maven использует внешние зависимости?
Если зависимости не найдены ни в локально, ни в центральном репозитории.
27
Как определить внешние зависимости
``` в pom.xml groupId как имя файла artifactId как имя файла Определить область видимости зависимости, как System указать абсолютный путь к файлу ```
28
Как создать новый проект на основе архетипа
archetype:gererate
29
SNAPSHOT
рабочая под-версия сборки, при каждой сборке мавен проверяет новую версию на удаленном репозитории
30
а в чем разница между SNAPSHOT И версией???
ПОлучив исходник с версией 1.0 MAVEN не будет пытаться получить новую версию....но будет проверять и подгружать новые версии SANPSHOT
31
Транзитивная зависимость
Автоматическая подгрузка библиотек в проект по самому короткому пути из списка зависимых проектов
32
Какую версию зависимости Maven выберет, когда вариантов несколько
Dependency mediation - определяет это, если в дереве зависимостей зависимости находятся на одном уровне, то выберется та, которая была обновлена первой
33
dependency scope
области видимости зависимости: compile - во всех classpath проекта provided - compilation и test classpath runtime - эта область указывает на то, что зависимость не обязательна для compilation, но обязательна для фаз выполнения test - зависимость не обязательная для нормального исполнения system - эта область похожа на provided за исключением того, что вы предоставляете jar. Артефакт всегда доступен и не смотрит в репозиторий import - эта область используется в зависимости типа POM в разделе. Это указывает на то, что определенный POM будет заменен зависимостями в этом POM разделе
34
как сослаться на свойство (property) опредленное в pom.xml
На все свойста pom.xml, можно сослаться с помощью префиксов "project" или "pom". Например: ${project.build.directory} - targer директория ${project.build.outputDirectory} - путь куда компилятор складывает файоы по умолчанию "target/classes" ${project.name} - имя проекта
35
зачем
содержит информацию для выполнеиня плагина
36
как исключить зависимость в Maven
exclusion
37
Что я вляется полным именем артефакта
: :
38
Можно ли собрать проект MAVEN без интернета
Да, если в локальном репозитории есть все необходимые для сборки артефакты
39
как исключить тесты при сборке
mvn install -Dmaven.test.skip=true
40
как запустить только один тест
mvn install -Dtest=org.apache.maven.utils.ConverterTest
41
Как остановить наследование плагинов для дочерних Pom
установить в false
42
определяет какой тип сборки: pom, Jar, war, ear