Maven 2与打包ejb vs jar

8
如果我正在使用 EJB 3.1,那么与之相关的有哪些差异呢?
<packaging>jar</packaging>

and

<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个回答

7
使用 ejb 打包类型需要执行 maven-ejb-plugin 插件,但对于 jar 打包类型则不需要(除非您明确进行了配置)。如原问题所述,插件配置仅在需要定义与默认值不同的配置时才需要。
据我所知,maven-ejb-plugin 的主要目的是(曾经)用于创建 EJB 客户端 模块(仅包括接口)。但在我看来,这已不再是推荐的方法。通常情况下,您会通过单独的模块提供 API,而不是让 ejb-plugin 自动创建它。

好的,谢谢。所以ejb打包现在不再有用了。 - tweetysat
生成的JAR文件可能基本相同,但使用“ejb”包装类型仍然是正确的。正如jay所述,它验证了EJB部署描述符的存在。 - Martin Höller

4
如在http://maven.apache.org/plugins/maven-ejb-plugin/usage.html中所述,该插件在生成JAR文件时不会执行任何EJB特定的处理,除非验证存在EJB部署描述符(如果EJB版本为2.0+)。由于您使用的是ejb 3.1,因此ejb-jar.xml文件是可选的,除非您想要生成客户端存根和实用程序类,否则使用jar打包不会有太大区别。

3

我建议您比较使用Maven帮助插件生成的jarejb项目类型的有效pom输出:

mvn help:effective-pom

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

ejbjar之间的差异在打包到ear插件中时也是有意义的。通常,对于包含bean的ejb-jar,使用ejbModule配置属性,而对于库(jar档案),则使用ear插件的jarModule配置属性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接