Maven依赖类型ejb vs jar

问题描述 投票:9回答:3

有什么区别

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

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

提示:默认类型是jar。

maven types pom.xml
3个回答
0
投票

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

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


0
投票

因为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类型。这是一种非常严格的方法。


-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.