Maven依赖类型ejb vs jar

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven依赖类型ejb vs jar相关的知识,希望对你有一定的参考价值。

有什么区别

    <dependency>
        <groupId>groupId</groupId>
        <artifactId>artifactId</artifactId>
        <type>ejb</type>
    </dependency>

    <dependency>
        <groupId>groupId</groupId>
        <artifactId>artifactId</artifactId>
    </dependency>

提示:默认类型是jar。

答案

Maven将触发不同的生命周期,具体取决于包装。请参阅here以获取捆绑生命周期列表。

在您的特定情况下,不同之处在于,当使用jar:jar作为打包时,它不会在package阶段调用jar目标,而是触发ejb:ejb目标,能够处理与EJB模块相关的特定任务(客户端生成... )。

另一答案

因为ejb是the main artifact generated by the maven-ejb-plugin,并且因为它是一个JAR工件,所以如果你在使用ejb类型或在指定依赖项AFAIK时使用(默认)jar类型并不重要。 (类似于OSGi捆绑包,有时也使用捆绑包创建,但只是JAR文件)。

如果要向辅助工件(例如ejb-client,test-jar)添加依赖项,或者如果依赖项具有不同的文件扩展名,则必须使用specify the typeclassifier

文档似乎更喜欢to use the ejb type,但它也会产生一些噪音,有时可以稍微维护一下,无处不在指定ejb类型。这是一种非常严格的方法。

另一答案

如果您没有在依赖项中指定任何类型,它将选择默认类型为“jar”,这意味着在任何远程/本地存储库中查找具有jar扩展名的文件。当您指定任何其他类型,如“ejb”,“so”时,“aar”maven将查找具有此扩展名的文件。

以上是关于Maven依赖类型ejb vs jar的主要内容,如果未能解决你的问题,请参考以下文章

Maven项目依赖问题

带有依赖库的 Maven EJB 打包

JBoss 7 里一个EJB依赖其他jar的几种方式

依赖类型dependency type在maven中的作用

maven构建依赖jar文件不反映代码的变化

Maven将代码及依赖打成一个Jar包的方式