Maven依赖类型ejb与jar
两者的区别是什么Maven依赖类型ejb与jar,maven,types,pom.xml,Maven,Types,Pom.xml,两者的区别是什么 <dependency> <groupId>groupId</groupId> <artifactId>artifactId</artifactId> <type>ejb</type> </dependency> groupId 人工的 ejb 及 groupId 人工的 提示:默认类型是jar。如果您没有在依
<dependency>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
<type>ejb</type>
</dependency>
groupId
人工的
ejb
及
groupId
人工的
提示:默认类型是jar。如果您没有在依赖项中指定任何类型,它将选择默认类型为“jar”,这意味着在任何远程/本地存储库中查找具有jar扩展名的文件。当您指定任何其他类型(如“ejb”、“so”、“aar”)时,maven将查找具有此扩展名的文件。maven将触发不同的生命周期,具体取决于打包。 有关捆绑生命周期的列表,请参阅 在您的特定情况下,不同之处在于,当使用
jar
作为打包时,它不会在package
阶段调用jar:jar
目标,而是触发ejb:ejb
目标,该目标能够处理与ejb模块相关的特定任务(客户端生成…)。(类似于OSGi捆绑包,有时也使用捆绑包打包创建,但只是JAR文件)
如果您想要将依赖项添加到辅助工件(例如ejb客户端、测试jar)中,或者如果依赖项具有不同的文件扩展名,那么您必须或
文档似乎更倾向于这样做,但它也会产生一些干扰,并且有时在任何地方指定ejb类型都会稍微不易维护。这是一种非常严格的方法。一个
ejb
类型是由生成的,目的是这是一个与EE应用程序相关的ejb。@khmarbaise:如果我使用jar呢?对于EE应用程序来说,这难道不可能吗?目前我得到了ejb类型,但在我的耳朵中找不到文件扩展名为“.ejb”的工件。只有一个“artifactId.jar”。什么时候我必须使用其中一个呢?这取决于你模块的用途。您可以将mavenejb插件
视为专门的mavenjar插件
;如果您确实需要maven ejb plugin
提供的一种特殊处理方法(查看插件站点,了解更多信息),那么您最好使用ejb包。如果没有(例如,在使用EJB spec 3+时,您可能只使用maven jar插件
,因此保留默认打包。maven EJB插件
,如果您的maven模块需要一些特定的“EJB”功能,例如生成EJB客户端,指定要使用的EJB版本,则必须使用maven EJB插件
。。。(请参阅)好的,这并没有回答这个问题(依赖项的ejb类型)。这个答案更多地是关于ejb的packaging@Tome这个问题讨论的是依赖类型,而不是项目类型
<dependency>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
</dependency>