0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#База знаний</a></p>
1
<p><a>#База знаний</a></p>
2
<ul><li>27 май 2021</li>
2
<ul><li>27 май 2021</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Разбираемся с самым популярным продуктом для автоматизации сборки и мигрируем без проблем.</p>
4
</ul><p>Разбираемся с самым популярным продуктом для автоматизации сборки и мигрируем без проблем.</p>
5
<p>Преподаватель Skillbox. Пишет про Java, учит Go. Помнит рассвет PHP и как "грабить корованы".</p>
5
<p>Преподаватель Skillbox. Пишет про Java, учит Go. Помнит рассвет PHP и как "грабить корованы".</p>
6
<p>Maven - это инструмент для сборки Java-проектов: компиляции, создания JAR, дистрибутива программы, генерации документации. С простыми проектами можно обойтись и без него - и собирать их в командной строке. Часто так и делают, но если проект большой и сложный, команда сборки выходит очень длинной, поэтому её иногда записывают в bat/sh-скрипт.</p>
6
<p>Maven - это инструмент для сборки Java-проектов: компиляции, создания JAR, дистрибутива программы, генерации документации. С простыми проектами можно обойтись и без него - и собирать их в командной строке. Часто так и делают, но если проект большой и сложный, команда сборки выходит очень длинной, поэтому её иногда записывают в bat/sh-скрипт.</p>
7
<p>Скрипты обычно зависят от платформы. Чтобы избавиться от этой зависимости и упростить работу, используют инструменты для сборки проекта, например Maven.</p>
7
<p>Скрипты обычно зависят от платформы. Чтобы избавиться от этой зависимости и упростить работу, используют инструменты для сборки проекта, например Maven.</p>
8
<p>Из любого стандартного проекта IDEA можно мигрировать на Maven-проект.</p>
8
<p>Из любого стандартного проекта IDEA можно мигрировать на Maven-проект.</p>
9
<p>В статье используется среда разработки JetBrains IDEA Community 2021.1. Если у вас другая версия, интерфейс может отличаться.</p>
9
<p>В статье используется среда разработки JetBrains IDEA Community 2021.1. Если у вас другая версия, интерфейс может отличаться.</p>
10
<p>Для этого выполните следующие действия:</p>
10
<p>Для этого выполните следующие действия:</p>
11
<ul><li>Выберите проект или модуль, который будете добавлять в Maven, - в нашем примере это будет модуль<strong>LambdaExpressions</strong>.</li>
11
<ul><li>Выберите проект или модуль, который будете добавлять в Maven, - в нашем примере это будет модуль<strong>LambdaExpressions</strong>.</li>
12
</ul><ul><li>Нажмите правой кнопкой мыши на название проекта/модуля и выберите пункт<strong>Add Framework Support…</strong></li>
12
</ul><ul><li>Нажмите правой кнопкой мыши на название проекта/модуля и выберите пункт<strong>Add Framework Support…</strong></li>
13
</ul><ul><li>Выберите тип проекта<strong>Maven</strong>и нажмите<strong>OK</strong>.</li>
13
</ul><ul><li>Выберите тип проекта<strong>Maven</strong>и нажмите<strong>OK</strong>.</li>
14
</ul><ul><li>После этого, если ваш проект под контролем Git, будет предложено добавить файл pom.xml в отслеживание Git. Для этого нужно кликнуть на <strong>Add</strong> - ваш pom.xml сразу добавится в stage и будет готов к коммиту.</li>
14
</ul><ul><li>После этого, если ваш проект под контролем Git, будет предложено добавить файл pom.xml в отслеживание Git. Для этого нужно кликнуть на <strong>Add</strong> - ваш pom.xml сразу добавится в stage и будет готов к коммиту.</li>
15
</ul><p><strong>Вниман<strong>ие</strong></strong><strong>!</strong></p>
15
</ul><p><strong>Вниман<strong>ие</strong></strong><strong>!</strong></p>
16
<p>Чтобы внести изменения в Git, файл pom.xml можно добавить к коммиту и позже. Для этого нажмите<strong>Cancel</strong>. А если ранее вы уже выбрали действие по умолчанию и поставили галочку перед<strong>Remember, don’t ask again</strong>, это окно не появится.</p>
16
<p>Чтобы внести изменения в Git, файл pom.xml можно добавить к коммиту и позже. Для этого нажмите<strong>Cancel</strong>. А если ранее вы уже выбрали действие по умолчанию и поставили галочку перед<strong>Remember, don’t ask again</strong>, это окно не появится.</p>
17
<ul><li>Вам будет предложено установить значения groupId, artifactId, version в pom.xml - сделайте это с помощью редактора.</li>
17
<ul><li>Вам будет предложено установить значения groupId, artifactId, version в pom.xml - сделайте это с помощью редактора.</li>
18
</ul><p>В Maven каждый проект идентифицируется парой groupId и artifactId.</p>
18
</ul><p>В Maven каждый проект идентифицируется парой groupId и artifactId.</p>
19
<ul><li>groupId - наименование организации или подразделения. Обычно здесь действуют такие же правила, как и при именовании пакетов в Java, - записывают доменное имя организации или сайта проекта. Например, ru.sendel.</li>
19
<ul><li>groupId - наименование организации или подразделения. Обычно здесь действуют такие же правила, как и при именовании пакетов в Java, - записывают доменное имя организации или сайта проекта. Например, ru.sendel.</li>
20
<li>artifactId - название вашего проекта. Например, LambdaExpressions.</li>
20
<li>artifactId - название вашего проекта. Например, LambdaExpressions.</li>
21
<li>version - версия проекта. Если состояние кода для проекта не зафиксировано, в конце к имени версии добавляется -SNAPSHOT. Это означает, что версия в разработке и результирующий JAR-файл может меняться. Например: 1.4.6, 1.0-SNAPSHOT.</li>
21
<li>version - версия проекта. Если состояние кода для проекта не зафиксировано, в конце к имени версии добавляется -SNAPSHOT. Это означает, что версия в разработке и результирующий JAR-файл может меняться. Например: 1.4.6, 1.0-SNAPSHOT.</li>
22
</ul><p>После изменения pom.xml нужно прочитать конфигурацию из файла pom.xml, чтобы активировать её в проекте. Для этого, в зависимости от версии IDEA, выполните следующие действия:</p>
22
</ul><p>После изменения pom.xml нужно прочитать конфигурацию из файла pom.xml, чтобы активировать её в проекте. Для этого, в зависимости от версии IDEA, выполните следующие действия:</p>
23
<ul><li><strong>Для IntelliJ IDEA 2020.1</strong><strong>и выше</strong>используйте сочетание клавиш Ctrl + Shift + O либо нажмите кнопку<strong>Reimport</strong>во всплывающем окошке.</li>
23
<ul><li><strong>Для IntelliJ IDEA 2020.1</strong><strong>и выше</strong>используйте сочетание клавиш Ctrl + Shift + O либо нажмите кнопку<strong>Reimport</strong>во всплывающем окошке.</li>
24
</ul><ul><li><strong>Для IntelliJ IDEA версии до 2020.1</strong>после редактирования свойств в файле выполните чтение (импорт) изменений в проект. Для этого нажмите правой кнопкой мыши на файл pom.xml, а в окне<strong>Project</strong>выберите<strong>Maven → Reimport.</strong></li>
24
</ul><ul><li><strong>Для IntelliJ IDEA версии до 2020.1</strong>после редактирования свойств в файле выполните чтение (импорт) изменений в проект. Для этого нажмите правой кнопкой мыши на файл pom.xml, а в окне<strong>Project</strong>выберите<strong>Maven → Reimport.</strong></li>
25
</ul><p>После попытки запустить проект у вас может появиться сообщение об ошибке:</p>
25
</ul><p>После попытки запустить проект у вас может появиться сообщение об ошибке:</p>
26
<p>Причина в том, что Maven по умолчанию пытается скомпилировать проект, используя версию языка 1.5 (JDK 5). Такая ошибка возникнет, если вы используете библиотеки из более высоких версий Java.</p>
26
<p>Причина в том, что Maven по умолчанию пытается скомпилировать проект, используя версию языка 1.5 (JDK 5). Такая ошибка возникнет, если вы используете библиотеки из более высоких версий Java.</p>
27
<p>Чтобы указать Maven, какую библиотеку использовать, необходимо явно отметить это в pom.xml, добавив блок <properties>:</p>
27
<p>Чтобы указать Maven, какую библиотеку использовать, необходимо явно отметить это в pom.xml, добавив блок <properties>:</p>
28
<?xml version="1.0" encoding="UTF-8"?> <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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>ru.skillbox</groupId> <artifactId>LambdaExpressions</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> </project><p>Такая запись соответствует JDK 8. Если вам нужно собрать проект для JDK 14, формат записи будет таким:</p>
28
<?xml version="1.0" encoding="UTF-8"?> <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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>ru.skillbox</groupId> <artifactId>LambdaExpressions</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> </project><p>Такая запись соответствует JDK 8. Если вам нужно собрать проект для JDK 14, формат записи будет таким:</p>
29
<properties> <maven.compiler.source>14</maven.compiler.source> <maven.compiler.target>14</maven.compiler.target> </properties><p>После этих действий можно добавлять зависимости, используя Maven, и настраивать сборку. Остаётся удалить файлы *.iml из контроля Git, так как зависимости и структуру нашего проекта теперь контролирует Maven.</p>
29
<properties> <maven.compiler.source>14</maven.compiler.source> <maven.compiler.target>14</maven.compiler.target> </properties><p>После этих действий можно добавлять зависимости, используя Maven, и настраивать сборку. Остаётся удалить файлы *.iml из контроля Git, так как зависимости и структуру нашего проекта теперь контролирует Maven.</p>
30
<a>Научитесь: Профессия Java-разработчик + ИИ Узнать больше</a>
30
<a>Научитесь: Профессия Java-разработчик + ИИ Узнать больше</a>