IntelliJ с поддержкой Glassfish и JPA требует дополнительного javaee.jar - PullRequest
0 голосов
/ 29 октября 2018

(Еще раз) Я настроил новый IntelliJ-проект в соответствии с этим руководством: https://www.jetbrains.com/help/idea/creating-and-running-your-first-restful-web-service.html

Что он в основном делает, устанавливая glassfish в качестве сервера приложений в IntelliJ, а затем создавая новый пустой проект Java EE с использованием этого сервера приложений. Моя структура проекта выглядит так же, как описано в ссылке, где библиотеки Glassfish находятся в папке «Внешние библиотеки».

Теперь я хочу использовать JPA-спецификацию для сохранения своего приложения. Учитывая, что Glassfish является поставщиком для этого (TopLink), не должно быть никаких проблем, верно? Однако на данный момент пакет javax.persistence неизвестен IntelliJ, поэтому я решил, что сначала мне нужно добавить поддержку JPA.

Итак, я перехожу к Файл -> Структура проекта -> Модули , нажимаю зеленую '+' и выбираю JPA. IntelliJ теперь просит меня выбрать «Поставщика JPA по умолчанию» из выпадающего списка, где я могу выбрать TopLink, что я и делаю. Но теперь IntelliJ отображает предупреждающее сообщение прямо под раскрывающимся списком, сообщая, что отсутствует «javaee.jar». На данный момент я уже полностью сбит с толку, потому что я знаю, что этот jar является частью установки Glassfish, которую я установил в качестве сервера приложений для этого проекта, а также уже в разделе «Внешние зависимости». Я не знаю, почему IntelliJ теперь нужен еще один javaee.jar?

Щелчок по кнопке исправления оставляет мне возможность загрузить ее (создание ее путем выбора javaee.jar из установки glassfish не работает, происходит сбой без обратной связи, просто сохраняется предупреждающее сообщение), которое IntelliJ Сделаю. Он создает новую папку в корневом каталоге проекта, которая называется «lib», в которую он помещает загруженный файл javaee.jar. Теперь javax.persistence известна, и я могу использовать все аннотации JPA.

Но я не понимаю, почему мне пришлось снова скачивать javaee.jar и почему у меня теперь есть вторая папка lib с избыточным javaee.jar. Это не имеет никакого смысла для меня, и это кажется неправильным. Что я тут не так делаю?

...