Проблема
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 стал таким:
Чудно, жмём правой кнопкой по нему, и выбираем 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 следующее:
Теперь 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.
Вы восхитительны!
Если помогло - лайк, подписка, колокольчик!)))
Сбрасывал идею несколько раз. Выдает *Неизвестная ошибка*. При вставке 5.1 подсвечивает красным куда бы его не вставлял(потратил несколько часов). Если нужно просто подключить библиотеку чтобы работать с квестами под джавараш - лучше так (2 минуты) - (фото).
нашел, это меню в приложении
но какой main, гд е его найти чтобы удалить
и что потом делать
+ после вставки 5.1.
org.apache.maven.plugins
maven-compiler-plugin
горит красным
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ