我自己写了一个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里面的类呢?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
compile ('com.XXX.XXX:library A:1.0.0') {
}
有时候,你可能不需要依赖进行传递 那么你可以看build文件中是怎么做的
具体代码可以到我的github查看 Gradle中如何禁止依赖传递
一般技能
// 法 . 0 . 使用@jar
// 法 . 1 . 不需要传递依赖
// 法 . 2 . 不需要传递依赖
// 法 . 3 . 排除某个间接依赖
大招
//法 . 4 . 全局禁止依赖传递
//法 . 5 . 全局禁止部分依赖传递
1、在对你的library打包后,检查build目录下publications/aar(或者jar或者mavenJar)/pom-default.xml文件是否存在
2、该pom文件内是否有添加dependencies项