问一个AndroidStudio中gradle dependency的问题(新手,勿喷)

我自己写了一个library A, library A 依赖com.android.support:custom tabs:23.1.1

dependencies {
    compile 'com.android.support:customtabs:23.1.1'
}

library A所属项目Project My,我在Project My里面新建了module demo, 在module demo的build.gradle里面将library A以本地库的方式引入

dependencies {
    compile project(':library A')
    // 注意这里没有compile 'com.android.support:customtabs:23.1.1' 哟
}

然后我在module demo中能使用com.android.support:customtabs:23.1.1 中的类,这个没有问题。


后来我把library A上传到JCenter和MavenCentral,这样一来,在任何一个项目中

compile 'com.XXX.XXX:library A:1.0.0'

就能将library A中添加进来了。


于是我又新建了一个项目Project My2,并在build.gradle中

compile 'com.XXX.XXX:library A:1.0.0'

但是

我在Project My2中用不了com.android.support:customtabs:23.1.1 中的类。所以,如何能不在build.gradle里面添加compile 'com.android.support:customtabs:23.1.1'的情况下使用customtabs里面的类呢?

阅读 5.7k
3 个回答

compile ('com.XXX.XXX:library A:1.0.0') {

transitive=true

}

有时候,你可能不需要依赖进行传递 那么你可以看build文件中是怎么做的

具体代码可以到我的github查看 Gradle中如何禁止依赖传递

一般技能

// 法 . 0 . 使用@jar

// 法 . 1 . 不需要传递依赖

// 法 . 2 . 不需要传递依赖

// 法 . 3 . 排除某个间接依赖

大招

//法 . 4 . 全局禁止依赖传递

//法 . 5 . 全局禁止部分依赖传递

1、在对你的library打包后,检查build目录下publications/aar(或者jar或者mavenJar)/pom-default.xml文件是否存在
2、该pom文件内是否有添加dependencies项

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题