首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Buck:传递依赖

Buck:传递依赖
EN

Stack Overflow用户
提问于 2016-05-03 19:00:53
回答 2查看 629关注 0票数 0

主要项目A (APK)依赖于次级项目B (AAR).A和B都依赖于C (AAR)。问题是C包括了两次,原因是:

"values.xml:XXX: error:属性“YYY已被定义”

如何从最终的APK中排除暂时依赖C?

项目A:

代码语言:javascript
复制
android_binary (
  deps = [    
    ':src',
  ], ...
)

android_library(
  name = 'src',
  deps = [
  ':C',
  '//B:src',    
  '//B:res',
  ], ...
}

android_resource(
  name = 'res',
  res = 'src/main/res', ...
}

次级项目B

代码语言:javascript
复制
android_aar (
  deps = [
    ':src',
    ':res'
  ], ...
)

android_library(
  name = 'src',
  deps = [
    ':res',
    ':C'
  ], ...
)

android_resource(
  name = 'res',
  deps = [
    ':C'
  ], ...
)

C是"appcompat-v7.aar“。

注:A在"A/libs“中包含C,B在"B/libs”中包含C。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-07 19:20:55

当我在做子项目B的时候,我最终从主项目A中删除了依赖项C。

这样,A通过子项目B获取C作为传递依赖,并防止C被包括两次。

票数 0
EN

Stack Overflow用户

发布于 2016-05-16 08:52:23

从您提供的示例中很难看出,但听起来您已经定义了两次'C‘:一个在A/libs中,一个在B/libs中。因为这件事巴克不明白这是“同一件事”。你应该做的是把'C‘放在一个A和B都可以引用它的位置(有一个与'A’和'B‘对等的’第三方‘文件夹是相当常见的),这样Buck就能够看到图形中有一个依赖钻石,并正确地解析它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37012349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档