我正在尝试使用Eclipse Mars 2和Glassfish 3.1.2,但是当我使用EclipseLink 2.1从表创建权限时,在构建路径中找不到javax.persistence。
这是正常行为吗?
我觉得奇怪的是,glassfish / lib里面的jee.jar只包含一个pom.xml
Glassfish不应该包含用jee标准开发所需的所有罐子吗?
我的项目是否是Maven项目才能自动下载这个罐子?我可以通过将我的项目配置为Maven项目来解决这个问题吗?
答案 0 :(得分:1)
Glassfish不应该包含用jee标准开发所需的所有罐子吗?
是的,它包含所需的所有罐子,但是间接的方式。即使它是只有一个文件的单个jar文件,即MANIFEST.MF
和包含您提到的pom文件的目录maven
。
但是如果你打开MANIFEST.MF
文件,你会发现它指向Class-Path:
条目中的许多jar文件,你需要能够开发JavaEE应用程序。
所以一切都在那里,您只需要将此文件添加到您的依赖项中,以便能够编译您的JavaEE(Servlet,JSF,EJB,JPA,...)类并在服务器上进行部署。但是这个(javaee.jar)必须是编译时依赖项,即不应该与您的应用程序一起打包,因为jar已经包含在服务器中。
我的项目是否是Maven项目才能自动下载这个罐子?
没有。您的项目可以但不应该是maven项目。举个例子,我们假设您有一个Eclipse项目,您希望在其中开发EJB应用程序。只需右键单击项目
转到Properties -> Build Path
页面并更改为Libraries
标签
点击Add External Jars ...
lib
目录并添加javaee.jar
,您就完成了。