Maven 依赖类型 ejb vs jar
Maven dependency type ejb vs jar
有什么区别
<dependency>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
<type>ejb</type>
</dependency>
和
<dependency>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
<type>jar</type>
</dependency>
如果您没有在依赖项中指定任何类型,它将 select 默认类型为 "jar",这意味着在任何 remote/local 存储库中查找具有 jar 扩展名的文件。当您指定任何其他类型时,如 "ejb"、"so"、"aar",maven 将查找具有此扩展名的文件。
Maven 将触发不同的生命周期,具体取决于包装。
有关捆绑生命周期的列表,请参阅 here。
在您的特定情况下,不同之处在于,当使用 jar
作为包装时,它不会在 package
阶段调用 jar:jar
目标,而是会触发 ejb:ejb
一个,能够处理与 EJB 模块相关的特定任务(客户端生成...)。
因为 ejb 是 the main artifact generated by the maven-ejb-plugin 并且因为它是 JAR 工件,所以在指定依赖项时使用 ejb 类型还是使用(默认)jar 类型并不重要,AFAIK . (类似于 OSGi 包,有时也使用包打包创建,但只是 JAR 文件)。
如果你想添加对辅助工件(例如 ejb-client、test-jar)的依赖,或者如果依赖有不同的文件扩展名,那么你必须 specify the type or the classifier.
文档似乎更喜欢 to use the ejb type,但它也会产生一些噪音,有时在任何地方指定 ejb 类型的维护性稍差。这是一个非常严格的方法。
当您的工件 artifactId
具有 EJB 并且您想使用它们时,需要 <type>ejb</type>
。如果您不需要模块中的 EJB,<type>jar</type>
是一个选项。
有什么区别
<dependency>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
<type>ejb</type>
</dependency>
和
<dependency>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
<type>jar</type>
</dependency>
如果您没有在依赖项中指定任何类型,它将 select 默认类型为 "jar",这意味着在任何 remote/local 存储库中查找具有 jar 扩展名的文件。当您指定任何其他类型时,如 "ejb"、"so"、"aar",maven 将查找具有此扩展名的文件。
Maven 将触发不同的生命周期,具体取决于包装。 有关捆绑生命周期的列表,请参阅 here。
在您的特定情况下,不同之处在于,当使用 jar
作为包装时,它不会在 package
阶段调用 jar:jar
目标,而是会触发 ejb:ejb
一个,能够处理与 EJB 模块相关的特定任务(客户端生成...)。
因为 ejb 是 the main artifact generated by the maven-ejb-plugin 并且因为它是 JAR 工件,所以在指定依赖项时使用 ejb 类型还是使用(默认)jar 类型并不重要,AFAIK . (类似于 OSGi 包,有时也使用包打包创建,但只是 JAR 文件)。
如果你想添加对辅助工件(例如 ejb-client、test-jar)的依赖,或者如果依赖有不同的文件扩展名,那么你必须 specify the type or the classifier.
文档似乎更喜欢 to use the ejb type,但它也会产生一些噪音,有时在任何地方指定 ejb 类型的维护性稍差。这是一个非常严格的方法。
artifactId
具有 EJB 并且您想使用它们时,需要 <type>ejb</type>
。如果您不需要模块中的 EJB,<type>jar</type>
是一个选项。