如果我正在使用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>
答案 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)
我还建议比较来自jar
和ejb
项目类型的maven帮助插件的有效pom输出:
mvn help:effective-pom
它将允许比较maven为ejb
项目和jar
项目生成的内容。
ejb
和jar
之间的差异也会在打包到耳插件时出现。通常,ejbModule
配置属性用于包含bean的ejb-jar,而ear插件的jarModule
配置属性用于库(jar存档)。