这不是重复,因为其他解决方案不起作用。
我有一个子项目:
:公地:插件
gradle.build(子项目)类似于:
configurations {providedCompile}
dependencies {
compile project(":commons:other-widget")
...other dependencies...
}
如果显示依赖项:
+--- project :commons:some-other-project
+--- project :commons:exclude-me-project (*)
\--- org.apache.cxf:cxf-rt-frontend-jaxrs: -> 3.0.3 (*)
什么行不通:
任何通常的语法。我试过了我能想到的每一个变化。甚至去寻找API但无法找到我需要的东西。
在此项目的依赖项部分中: ...
compile project(":commons:some-other-project") {
exclude (":commons:exclude-me-project")
}
结果:
Could not find method exclude() for arguments [:commons:some-other-project] on project
我也试过了:
compile ( project (':commons:some-other-project') ) {
transitive = false
}
结果:它不删除“:commons:some-other-project”的依赖关系,而是删除“:commons:some-other-project”。
我有一个庞大而复杂的项目要转换。我前面有很多这样的工作。如果将项目作为依赖项,我该如何从中排除项目?
答案 0 :(得分:32)
exclude
有一点另一种语法,所以尝试提供模块名称,它等于exclude-me-project
名称,如:
compile(project(":commons:some-other-project")) {
exclude module: "exclude-me-project"
}
或者,您可以排除commons
项目的所有传递依赖项,但它会删除some-other-project
项目的所有deps,包括exclude-me-project
:
compile(project(":commons:some-other-project")) {
transitive = false
}