【发布时间】:2013-11-21 02:27:22
【问题描述】:
我有一个项目,我想使用 providedCompile 来避免拉取它的库。但是,这会阻止我引入我确实需要的另一个项目的库。文档说:如果您不想要这种传递行为,只需声明您提供的依赖项,但它没有给出如何执行此操作的示例。
这基本上是我的依赖项的样子:
dependencies {
compile(project(':common'))
providedCompile(project(':projA')) // <-- also depends on :common
}
我的 war 文件正确地排除了 projA 中的所有传递库,但我需要为 common.jar 胜过它,但我不知道如何做到这一点。但文档似乎表明这是可能的......
编辑:这是一个看似有效的 hacky 配置。 “projA”的行组合给了我 projA.jar 作为依赖项,但不是它的子项。由于“common”是编译依赖,但“projA”仅在运行时被考虑provided,由于compile时间依赖,我仍然得到common.jar。我不确定它应该以这种方式工作,但它会产生我需要的战争。
dependencies {
compile(project(':projA')) { transitive = false }
providedRuntime(project(':projA')) { transitive = false }
compile(project(':common'))
}
【问题讨论】:
标签: gradle