我想要一个用maven构建的Java JEE6项目,我希望它标准
所以,我把它放在我的pom.xml中:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
像这样的项目,它应该在兼容的每个JEE6容器中运行(jboss,geronimo,glashfish等)
然后,为什么存在这种jboss依赖?
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-javaee-6.0</artifactId>
<version>3.0.2.Final</version>
<scope>provided</scope>
</dependency>
如果我使用它,我是否与jboss绑定,因此我只能将此服务器与此应用程序一起使用?
总是使用标准javaee-api
是不是更可取谢谢!
答案 0 :(得分:21)
标准api瘫痪了,i。即方法体丢失了。测试结果证明了这一点。我曾经遇到过这个陷阱,对此并不满意。
因此建议使用另一个包作为参考。
您可以仔细查看Adam Biens Blog
如果确实需要,您还可以为不同的部署环境创建配置文件。但是,基本上我同意,遗憾的是这不是一个非常令人愉快的情况。
如果遇到测试问题,可以查看this thread。
编辑:
顺便说一下,从现在开始这可能是非常有意义的。对于 Java EE 7 (source)
答案 1 :(得分:2)
第一个使用java-api依赖的解决方案是正确的方法:在理想情况下,您的应用程序不应该关注服务器环境。对于单元测试,您可以使用Arquillian,这可以帮助您在“家”测试企业bean而不会头疼。如果你正在使用jboss-javaee,你确定你的应用程序将在jboss上部署并在另一台服务器上正常工作吗?