HTML Diff
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, добавив блок &lt;properties&gt;:</p>
27 <p>Чтобы указать Maven, какую библиотеку использовать, необходимо явно отметить это в pom.xml, добавив блок &lt;properties&gt;:</p>
28 &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;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"&gt; &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt; &lt;groupId&gt;ru.skillbox&lt;/groupId&gt; &lt;artifactId&gt;LambdaExpressions&lt;/artifactId&gt; &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt; &lt;properties&gt; &lt;maven.compiler.source&gt;1.8&lt;/maven.compiler.source&gt; &lt;maven.compiler.target&gt;1.8&lt;/maven.compiler.target&gt; &lt;/properties&gt; &lt;/project&gt;<p>Такая запись соответствует JDK 8. Если вам нужно собрать проект для JDK 14, формат записи будет таким:</p>
28 &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;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"&gt; &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt; &lt;groupId&gt;ru.skillbox&lt;/groupId&gt; &lt;artifactId&gt;LambdaExpressions&lt;/artifactId&gt; &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt; &lt;properties&gt; &lt;maven.compiler.source&gt;1.8&lt;/maven.compiler.source&gt; &lt;maven.compiler.target&gt;1.8&lt;/maven.compiler.target&gt; &lt;/properties&gt; &lt;/project&gt;<p>Такая запись соответствует JDK 8. Если вам нужно собрать проект для JDK 14, формат записи будет таким:</p>
29 &lt;properties&gt; &lt;maven.compiler.source&gt;14&lt;/maven.compiler.source&gt; &lt;maven.compiler.target&gt;14&lt;/maven.compiler.target&gt; &lt;/properties&gt;<p>После этих действий можно добавлять зависимости, используя Maven, и настраивать сборку. Остаётся удалить файлы *.iml из контроля Git, так как зависимости и структуру нашего проекта теперь контролирует Maven.</p>
29 &lt;properties&gt; &lt;maven.compiler.source&gt;14&lt;/maven.compiler.source&gt; &lt;maven.compiler.target&gt;14&lt;/maven.compiler.target&gt; &lt;/properties&gt;<p>После этих действий можно добавлять зависимости, используя Maven, и настраивать сборку. Остаётся удалить файлы *.iml из контроля Git, так как зависимости и структуру нашего проекта теперь контролирует Maven.</p>
30 <a>Научитесь: Профессия Java-разработчик + ИИ Узнать больше</a>
30 <a>Научитесь: Профессия Java-разработчик + ИИ Узнать больше</a>