Maven 2&Packaging ejb vs jar

如果我正在使用ejb 3.1,那么它们之间的差异是什么

jar 

 ejb ...  org.apache.maven.plugins maven-ejb-plugin 2.3  3.1   

如http://maven.apache.org/plugins/maven-ejb-plugin/usage.html所述 ,

“除了在EJB版本为2.0+时validation是否存在EJB部署描述符之外,插件在生成jar期间不执行任何EJB特定处理”

由于您有ejb 3.1,因此ejb-jar.xml文件是可选的,因此除非您想要生成Martin评论中提到的客户端存根和实用程序类,否则如果您使用jar包装则没有太大区别。

使用包装类型ejb包括执行maven-ejb-plugin 。 包装类型jar不是这种情况(除非您明确配置它)。 只有在需要定义与默认值不同的配置时,才需要原始问题中所述的插件配置。

据我所知,maven-ejb-plugin的主要目的是创建一个EJB客户端模块(仅包括接口)。 但恕我直言,这不再是推荐的方式。 通常,您通过单独的模块提供API,并且不要让ejb-plugin自动创建它。

我还建议比较jarejb项目类型的maven帮助插件的有效pom输出:

 mvn help:effective-pom 

它将允许比较maven为ejb项目和jar项目生成的内容。

ejbjar之间的区别也可以在打包到耳塞时产生。 通常, ejbModule配置属性用于包含bean的ejb-jar,而ear插件的jarModule配置属性用于库(jar存档)。