Maven添加不在pom文件中的依赖项

Maven添加不在pom文件中的依赖项,maven,Maven,我在pom文件中定义了一个只有两个依赖项的模块,但是生成的.classpath文件(使用mvn eclipse:eclipse)也包含其他依赖项 我检查了这个pom中添加的模块的依赖关系,但并不是所有模块都添加了 因此,情况是: 项目A依赖于项目B 项目B取决于项目X、Y和 Z 当我在项目A上运行mvn eclipse:eclipse时,.classpath文件包含项目B和项目X和Y,但不包含项目Z 这不会导致任何问题,但这是预期的行为吗?是的,这是预期的行为。项目B需要X、Y和Z才能正常工

我在pom文件中定义了一个只有两个依赖项的模块,但是生成的.classpath文件(使用mvn eclipse:eclipse)也包含其他依赖项

我检查了这个pom中添加的模块的依赖关系,但并不是所有模块都添加了

因此,情况是:

  • 项目A依赖于项目B
  • 项目B取决于项目X、Y和 Z
当我在项目A上运行mvn eclipse:eclipse时,.classpath文件包含项目B和项目X和Y,但不包含项目Z


这不会导致任何问题,但这是预期的行为吗?

是的,这是预期的行为。项目B需要X、Y和Z才能正常工作,因此这些依赖项(称为传递依赖项)实际上是项目的一部分

有关maven依赖项解析的详细说明,请参阅

您可以从命令行调用
mvn dependency:tree
mvn dependency:list
,查看所有依赖项,包括可传递的依赖项

如果您知道您依赖于一个工件,但它在运行时可用,就像应用服务器上的Java EE库一样,您可以在
pom
中将它们标记为
提供的


组
用于maven处理可选和排除的依赖项


如果这两个选项都不适用,那么我希望Z与其他依赖项一起存在。最好的检查方法是运行
mvn dependency:tree
mvn dependency:list
并grep Z的输出。

但这里的问题是项目A的类路径不包含项目B的所有依赖项。@cmn oops,对不起,我的错。请看编辑。调用
mvn dependency:tree
时是否列出Z?