Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gradle 使用实现是否允许跳过排除消费者项目中的依赖项?_Gradle - Fatal编程技术网

Gradle 使用实现是否允许跳过排除消费者项目中的依赖项?

Gradle 使用实现是否允许跳过排除消费者项目中的依赖项?,gradle,Gradle,通常会排除可传递依赖项: 项目A: dependencies { compile 'com.google.guava' } 项目B: dependencies { compile ('project-A') { exclude group: 'com.google.guava' } } dependencies { implementation 'project-A-fixed' // no need to exlude anymore? } 问题: 使用实现而

通常会排除可传递依赖项:

项目A:

dependencies {
  compile 'com.google.guava'
}
项目B:

dependencies {
  compile ('project-A') {
    exclude group: 'com.google.guava'
  }
}
dependencies {
  implementation 'project-A-fixed'
  // no need to exlude anymore?
}
问题:

  • 使用实现而不是编译可以避免排除依赖性吗?(参见下面的“固定”示例)
  • 仍然需要排除以避免运行时类路径上的冲突
  • 实现只修复编译类路径而不是运行时中的泄漏?所以,在编译中已经存在依赖冲突似乎更容易诊断和修复?我错了吗
  • 固定项目:

    dependencies {
      implementation 'com.google.guava'
    }
    
    项目B:

    dependencies {
      compile ('project-A') {
        exclude group: 'com.google.guava'
      }
    }
    
    dependencies {
      implementation 'project-A-fixed'
      // no need to exlude anymore?
    }