之间有什么区别
<dependency>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
<type>ejb</type>
</dependency>
和
<dependency>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
</dependency>
提示:默认类型为jar。
答案 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 type或classifier
文档似乎更喜欢to use the ejb type,但是它也会产生一些噪音,有时在任何地方指定ejb类型的维护性都较差。这是非常严格的方法。
答案 2 :(得分:-1)
如果您没有在依赖项中指定任何类型,它将选择默认类型为“jar”,这意味着在任何远程/本地存储库中查找带有jar扩展名的文件。当您指定任何其他类型,如“ejb”,“so”时,“aar”maven将查找具有此扩展名的文件。