10
以下Maven的POM参考状态:Maven的'系统'范围是可传递的,但'提供'不是?
提供 - 这很像编译,而是指你所期望的 JDK或容器在 运行时提供。它仅在 编译和测试类路径中可用,而 不是可传递的。
...
系统 - 这个范围类似于为,除了你必须 提供包含它 明确的JAR。工件始终可用 ,在 存储库中不会查找该工件。
我现在已经将一个有很多'系统'依赖关系的项目转换为'provided'。但是,看起来系统依赖关系是可传递的,这使得它们与提供的非常不相似,并且现在在我的构建中导致很多缺失的依赖关系。我的问题是双重的:
- 是系统范围传递?如果是这样,Maven的参考是错误还是不完整?
- 有没有办法使依赖性传递,而不将它们打包到最终的程序集?
你所说的“make依赖传递”是什么意思? (就系统范围而言,其理由是“系统依赖关系对解决现在由JDK提供的工件的依赖性特别有用,但在早期单独下载时可用”......这对我来说绝对没有意义,因为您需要一旦它由JDK提供,就改变POM,所以不妨改变提供的范围。) – 2012-08-07 12:22:58