JavaRush/Java блог/Random/Подключение библиотек с помощью Maven

Подключение библиотек с помощью Maven

Статья из группы Random
участников
Подключение библиотек с помощью Maven - 1 Проблема JavaRush использует некоторые пакеты, которые были в JDK8, а потом их вырезали. Например, JavaFX для игр, или JAXB для обработки XML. Поэтому если вы используете свежую версию JDK, то у вас проблема... Но даже если вы сидите на олдскульной JDK8, то у вас тоже проблема... В 4 квесте Collections вам потребуется подключить Jackson, для обработки JSON. Конечно, всё можно подключить руками, но это довольно уныло. Надо выкачивать их руками, добавлять их в проект... Решение Собственно для автоматизации этой рутины и нужен Maven. 0) Настоятельно рекомендую сделать резервную копию проекта JavaRush, а то мало ли... 1) Сначала добавим к нашему проекту Maven. Правой кнопкой на модуле 4.JavaCollections, там выбираем Add Framework Support... Maven, [Ok] 2) Теперь находим файлик pom.xml, в нём руками добавляем блок
<dependencies>
</dependencies>
Прям сразу после </version> 3) А дальше начинаем добавлять нужные нам пакеты. Если нам нужен Jeckson, гуглим "jackson maven dependency" Находим ответ типо такого: http://tutorials.jenkov.com/java-json/jackson-installation.html Видим, что нам для Jeckson нужно 3 зависимости (artifactId): jackson-core, jackson-annotations, jackson-databind Есть и другие зависимости, но они нам пока не нужны, будут нужны - добавим. Теперь эти 3 зависимости ищем на этом сайте - https://mvnrepository.com/ Вбиваем туда названия наших артефактов, находим те, которыми пользуются большинство, или самую свежую версию. И копируем текст зависимости к нам в pom.xml. 4) Итого наш pom.xml стал таким:
<?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>groupId</groupId>
    <artifactId>4.JavaCollections</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.12.3</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.12.3</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.12.3</version>
        </dependency>
    </dependencies>


</project>
Чудно, жмём правой кнопкой по нему, и выбираем Maven/Reimport. 5) Теперь в наших программах Jeckson стал находиться, красные названия объектов пропали. Но код перестал компилироваться, пишет ошибку:
Error:java: error: release version 5 not supported
Почему-то при внедрении Maven в проект, версия поддерживаемой Java падает до 5... Нам это надо починить: File\Settings\Build, Execution, Deployment\Compiler\Java Compiler Там в модуля указывается, что для наш модуль 4.JavaCollections - нужно кодить в Java5... Удаляем наш модуль в этом окне. Но это не всё, дальше открываем File\Project Structure\Modules Там выбираем наш модуль 4.JavaCollections. Дальше выбираем вкладку Language level - Project default. 5.1) Нашёл как решить проблему из пункта 5. Просто дописываем в pom.xml следующее:
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>
Теперь Maven проставляет версию байткода для нашего модуля равную JDK 8 и нас это устраивает. 5й пункт не стал удалять, для общей информации оставил. Чтобы было понимание, где какие версии JDK можно поменять в IDEA 6) Кстати о Project default. JavaRush работает на JDK 8. И если у вас 11 версия (или свежее), то вы будете регулярно материться на Валидатор, который не пропускает ваш код. Потому что вы будете писать код, который ввели в JDK 9+, у вас всё будет работать, а Валидатор будет вам засчитывать ошибку. Поэтому идём: File\Project Structure\Project Указываем вашу текущую версию JDK, а под ней, указываем language level - строго 8 - Lambdas, type annotations etc. В чём выгода - вы будете видеть возможности JDK 9+, но если вы их попробуете добавить - IDEA будет ругаться. Например, "aaa".lines(); - написать можно (IDEA подставит, хоть и подсветит красным), провалиться можно - поизучать внутренности. А вот скомпилировать - не даст. 7) Последнее что нам осталось сделать - это поправить пути внутри пакета 4.JavaCollections. Maven их переделал под себя, возвращаем как было: а) Заходим в File\Project Structure\Modules б) Выбираем 4.JavaCollections\Source в) Удаляем target, rosources, test г) Ставим Source Folder на src д) Папку com переносим на диске обратно в src е) Папку main - удаляем. Вобщем делаем как было до Maven, по аналогии с 3.JavaMultithreading 8) Теперь самостоятельно добавляем оставшиеся зависимости, например для JAXB. Если нужно добавить логгирование, может помочь моя статья. Дописываем в резюме - Maven. Вы восхитительны! Если помогло - лайк, подписка, колокольчик!)))
Комментарии (12)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
wokku
Уровень 51
17 июля 2023, 11:02
Спс, пришлось переустанавливать jvm
Vossen Начальник в Жек
13 августа 2022, 12:56
Сбрасывал идею несколько раз. Выдает *Неизвестная ошибка*. При вставке 5.1 подсвечивает красным куда бы его не вставлял(потратил несколько часов). Если нужно просто подключить библиотеку чтобы работать с квестами под джавараш - лучше так (2 минуты) - (фото).
Baggins Бармен в Maestrello
17 июля 2022, 17:24
перестал грузить следующие задачи, пишет неизвестная ошибка
Тимофей
Уровень 51
6 марта 2022, 07:08
Вообще трэш после этого Мавена пошел, ничего не работало, все таски в модулях пропали. Помог полный снос JDE и установка через библеотеку просто Jsonа
Артур Java Developer
21 января 2022, 16:47
В новой версии идеи нужно нажимать maven/reload project
Андрей Гузанов
Уровень 37
1 октября 2021, 12:45
Спасибо, полезная статья ! )
AlinaAlina
Уровень 35
26 августа 2021, 15:06
Cпасибо, статья очень помогла)
Vetrov_Milka
Уровень 33
22 августа 2021, 18:13
Помогите пожалуйста, где находится кнопка из этого пункта? "Чудно, жмём правой кнопкой по нему, и выбираем Maven/Reimport."?
KristinaL
Уровень 35
31 октября 2021, 13:41
Появляется, если перезапустить IDEA
Vadim Zakirov Java Developer
6 июля 2021, 18:01
где этот File\Project Structure\Project искать, хрен его знает
Vadim Zakirov Java Developer
6 июля 2021, 19:36
нашел, это меню в приложении но какой main, гд е его найти чтобы удалить и что потом делать + после вставки 5.1. org.apache.maven.plugins maven-compiler-plugin горит красным
Алексей
Уровень 37
3 июня 2021, 19:34
хорошая статья