根据传递依赖的概念,如果一个项目,说它A依赖于X jar并且包含在A&#39的pom.xml中。现在我的第二个项目,说它B依赖于项目A和X jar。所以现在在我的B> pom.xml中,我只在其依赖项中添加项目A,因为X jar由传递依赖的概念由A提供。
但是如果我有一个Uber(阴影)jar而不是X jar,那么当我构建项目B时,它无法说Uber jar中包含的包丢失了。意味着这个概念失败了。
如果我错过任何概念或错过理解传递依赖,请帮助我理解。
答案 0 :(得分:0)
<scope>
依赖项通常设置为provided
provided
。对于大多数AEM maven依赖项也是如此。
with cteMain as (
select
*, row_number() over (partition by Credit_Line_NO order by AsOfDate) as sn
from Reporting_Table
)
Select m.Credit_Line_NO,
sLead.NEXT_PAYMENT_DATE,
m.AsOfDate,
m.EXPIRY_DATE_REVISED,
m.sn,
m.FBNK_MONTHS
From cteMain as m
LEFT OUTER JOIN cteMain AS sLead
ON sLead.sn = m.sn+1
LEFT OUTER JOIN cteMain AS sLeg
ON sLeg.sn = m.sn-1
ORDER BY m.Credit_Line_NO, m.AsOfDate
个依赖关系不传递,请阅读有关传递依赖关系的maven文档:https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
在上面的maven doc链接中,请阅读&#34;依赖范围&#34;部分。
来自doc:
<强>提供:强> 这很像compile,但表示您希望JDK或容器在运行时提供依赖性。例如,在为Java Enterprise Edition构建Web应用程序时,您可以将Servlet API和相关Java EE API的依赖关系设置为提供的范围,因为Web容器提供了这些类。此范围仅在编译和测试类路径中可用,并且不可传递。