Maven依赖类型ejb vs jar

时间:2016-02-16 08:20:43

标签: maven types pom.xml

之间有什么区别
    <dependency>
        <groupId>groupId</groupId>
        <artifactId>artifactId</artifactId>
        <type>ejb</type>
    </dependency>

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

提示:默认类型为jar。

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

由于ejb是the main artifact generated by the maven-ejb-plugin,并且由于它是一个JAR工件,因此在指定依赖项AFAIK时使用ejb类型还是使用(默认)jar类型并不重要。 (类似于OSGi捆绑软件,有时也使用捆绑软件包装创建,但仅仅是JAR文件。)

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

文档似乎更喜欢to use the ejb type,但是它也会产生一些噪音,有时在任何地方指定ejb类型的维护性都较差。这是非常严格的方法。

答案 2 :(得分:-1)

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