【问题标题】:How do you exclude a transitive project dependency in gradle如何在 gradle 中排除传递项目依赖项
【发布时间】:2012-12-05 02:25:39
【问题描述】:

给定

dependencies {
   compile project(':subproject') {
        transitive = false
   }
}

这在 gradle 1.3 中无法正常工作。 (即所有依赖项都包含在子项目中)

这是一个错误还是排除项目依赖项的语法不同?

【问题讨论】:

  • 我发现了一个尚未解决的 Jira,但似乎有一个解决方法如下:在项目周围添加额外的括号,如下所示 compile (project(':subproject')) { transitive = false } - 我正在使用它,它对我有用 - 不直观但有效
  • 此评论应标记为答案。不幸的是,一旦您排除了所有项目部门,如果您碰巧包含了其中一个项目(因为您只需要该列表中的 jar 子集),gradle 不会让您这样做。所以对于疯狂的项目来说,排除 dep by dep 只是为了做一些简单的事情。

标签: gradle dependencies project


【解决方案1】:

所示语法将向Project 对象添加一个新的(所谓的动态transitive 属性,除非在其他地方使用,否则不会产生任何效果。您将收到动态属性已被弃用的警告,这表明构建脚本中存在潜在错误,并且在 Gradle 2.0 中将严重失败。

正确的语法是(正如你已经指出的):

dependencies {
    compile(project(':subproject')) {
        transitive = false
    }
} 

【讨论】:

  • No such property: transitive for class: org.gradle.api.internal.project.DefaultProject_Decorated
  • 语法已修复,但依赖项也可传递到父项目。
猜你喜欢
  • 2015-05-15
  • 1970-01-01
  • 1970-01-01
  • 2022-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-18
  • 2023-04-02
相关资源
最近更新 更多