2016-12-01 64 views
4

如果你在Maven中声明了一个依赖项,你可以添加一个类型,比如war,jar,ejb。Maven中的依赖:ejb类型的影响是什么?

据我所知编译类型为ejb的项目与编译类型为jar的项目不同,因为它触发了不同的生命周期。

但声明一个依赖有什么区别?

Maven dependency type ejb vs jar似乎问同样的问题,但接受的答案似乎很奇怪。我怀疑依赖项中的类型可能会触发生命周期。其实,我期望这种类型的ejb和类型的jar完全一样。有人可以阐明这一点吗?

+1

也许更多的想法,可以添加,但没错,他们应该表现在完全相同的方式,只有[在Maven的乙醚提供商例如源代码PEEK(HTTPS为“文档”的目的不同(:/ /github.com/apache/maven/blob/maven-3.3.9/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenRepositorySystemUtils.java#L115-L116))。如果您有一个包装EJB的项目,即' ejb',则不是依赖于EJB,而是启动不同的生命周期。 – Tunaki

回答

0

我怀疑,在依赖型可以触发一个生命周期

你不是一个人怀疑。

在声明与ejb类型的依赖,你从有关ejb作为Maven的提供的一些设施中获益:

  • 添加在application.xml的EJB的声明的能力。 从Java EE 5开始,它不再是必需的。

  • 检查依赖关系是EJB还是不是简单的JAR。

  • 以及其他一些小问题。

,如果你用罐子type声明你的依赖你就没有这些设施。

正如你可以看到,它并没有在很多事情改变,但无论如何,在这两种情况下,它是用于依赖同一个JAR。

你不指ejb-client类型,但它往往是因为违背了与使用相同的罐子,当你在依赖声明ejb-client类型jarejb类型的依赖的情况下,更有趣的东西,你依赖于一个不同的jar,因为这个jar应该只包含API类来调用ejb
当然,如果我们想要我们的ejb的版本ejb-client,我们必须在产生ejb的工件中指定它。