一位同事正试图建立一个新的Spring项目.该项目明确依赖于spring-security,而spring(安全)又依赖于wss4j.运行测试时,他遇到了缺少课程的问题.
我们已经将缺少的类跟踪到了ax-saaj,这是wss4j的"提供的"范围依赖.当我运行dependency:tree
maven目标时,它不会被列为项目的依赖项.
我的"规定"的理解是这样的:它是由Maven的用于构建解决,但不包括在交付,也不由Maven的任何"跑"阶段提供(在classpath)(运行测试,也没有运行应用程序本身基于Maven) .
因此,如果"提供"依赖项隐含在您的项目中,Maven会完全忽略它,因为它实际上并没有构建依赖于"提供"工件的可交付项,而是由您来为运行时提供它.
我已经测试并dependency:tree
列出了提供的依赖项,如果它们是项目的显式依赖项,但是如果它们低于依赖项树则不会.
我已经告诉他现在要将依赖项作为一个显式的(作用域'运行时')包含在内,但显然这会在完整的运行时环境中引起问题(它没有"提供"任何内容),但我们需要知道依赖关系明确包含它们.有谁知道如何获得项目的完整依赖列表?
谢谢
PS.我知道我也可以让他明确地依赖'axis-saaj'和'test'的范围,但这不是问题,列出依赖关系是!
PPS.我们正在使用Maven 3
购买力平价.我没有在这里包含任何pom文本,因为它会花太长时间.您可以通过创建项目显式依赖于(groupId)org.springframework.ws,(artifactId)spring-ws-security,(version)2.0.0.RELEASE来看到这一点.
mvn dependency:tree
并mvn dependency:list
提供您正在寻找的“完整依赖项列表”。正如您似乎正确理解的那样,由于缺乏更好的词,依赖项的提供范围依赖项不符合“传递性”,因此不计为项目的依赖项。看来你对情况的把握是正确的,所以我不确定你还想问什么。尝试提出一些具体问题和/或阅读传递依赖项的基础知识,特别是页面下方的表格,该表显示提供的依赖项永远不会包含在传递性中。
归档时间: |
|
查看次数: |
2993 次 |
最近记录: |