Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven依赖类型ejb与jar_Maven_Types_Pom.xml - Fatal编程技术网

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>