gpt4 book ai didi

java - 与 "ejb"和 "jar"相同的依赖关系——会发生什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:35:32 25 4
gpt4 key购买 nike

Maven 中的依赖项有一个 type默认为 jar 的元素, 但可以设置为 ejb , war , ear等类型ejb是一种特殊情况,因为它不会导致不同的文件结尾: ejb还有结局.jar .

我有一个 ear 项目,其中相同的依赖项被引用一次,类型为 ejb一次输入 jar (在传递依赖树中)。两个条目都要求使用相同的文件,但 Maven“坐标”不同。

dependencyConvergence的角度来看enforcer 插件的规则,两个依赖项似乎不同 - <type>jar 的版本依赖似乎不是由 dependencyManagement 管理的。然而,只有一个依赖项进入了 ear - 即 <type>ejb一个。

Maven 何时“删除”第二个依赖项,我可以做些什么来影响它?

请注意:我知道你不应该有 ejb作为jar s 在你的依赖列表上,但如果我杀了负责的开发人员,我可能会进 jail 。

最佳答案

我在 Eclipse 中创建了两个示例项目:一个 EAR,一个 EJB。

如果 EAR 的 POM 中的顺序是:

<dependency>
...
<type>jar</type>

<dependency>
...
<type>ejb</type>

ejb.jar 只放在.ear/lib 中。

如果 EAR 的 POM 中的顺序是:

<dependency>
...
<type>ejb</type>

<dependency>
...
<type>jar</type>

ejb.jar 被放入.ear 的根目录和/lib

显然这是 POM 中的声明顺序很重要的罕见情况之一。

顺便说一句,只是为了说清楚:您的“引用了相同的依赖项 [...] 具有不同的 Maven ‘坐标’”是矛盾的。 Maven coordinatesgroupIdartifactIdversion (GAV),而不是 packaging 和/或 classifier,因为后两者没有指定“Where?”但是“什么?”。这可能就是您引用“坐标”的原因。

关于java - 与 "ejb"和 "jar"相同的依赖关系——会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42250594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com