(再次),我根据此指南设置了一个新的IntelliJ项目:https://www.jetbrains.com/help/idea/creating-and-running-your-first-restful-web-service.html
它的主要作用是在IntelliJ中将glassfish设置为应用服务器,然后使用该应用服务器创建一个新的空Java EE项目。我的项目结构看起来像在链接中描述的那样,其中glassfish库位于“外部库”文件夹下。
现在,我想使用JPA规范来保持我的应用程序中的持久性。考虑到glassfish是该(TopLink)的提供者,应该没有问题,对吧?但是,到目前为止,IntelliJ尚不知道javax.persistence包,因此我认为必须首先添加JPA支持。
因此,我导航至文件->项目结构->模块,点击绿色的“ +”并选择JPA。 IntelliJ现在要求我从下拉菜单中选择“默认JPA提供程序”,在这里我可以选择TopLink。但是现在IntelliJ在下拉菜单的正下方显示了一条警告消息,告诉我缺少“ javaee.jar”。在这一点上,我已经完全困惑了,因为我知道这个jar是glassfish安装的一部分,我将其设置为该项目的应用服务器,并且也已经在“外部依赖项”下。我不知道为什么IntelliJ现在需要另一个javaee.jar?
单击修复按钮只会让我选择下载它(通过从glassfish安装中选择javaee.jar创建一个不起作用,它会在没有任何反馈的情况下失败,警告消息只会持续存在),IntelliJ会做。它将在项目的根目录下创建一个新文件夹,称为“ lib”,在此文件夹中放置下载的javaee.jar。现在已经知道了javax.persistence,并且我可以使用所有JPA特定的注释。
但是我不明白为什么我必须再次下载javaee.jar,为什么现在又有了带冗余javaee.jar的第二个lib文件夹。这对我来说没有任何意义,这似乎是错误的。我在这里做什么错了?