Maven 2&包装ejb vs jar

时间:2013-09-18 07:47:20

标签: java maven-2 ejb-3.1

如果我正在使用ejb 3.1,那么

之间的区别是什么
<packaging>jar</packaging>

<packaging>ejb</packaging>
...
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-ejb-plugin</artifactId>
    <version>2.3</version>
    <configuration>
        <ejbVersion>3.1</ejbVersion>
    </configuration>
</plugin>

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:3)

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

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

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

答案 2 :(得分:1)

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

mvn help:effective-pom

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

ejbjar之间的差异也会在打包到耳插件时出现。通常,ejbModule配置属性用于包含bean的ejb-jar,而ear插件的jarModule配置属性用于库(jar存档)。