首先问题百度大部分可以解决,但是我的问题百度无法解决,所以我翻了一遍资料,也还是没解决(因为我看不懂英文,而且gradle的文档我个人觉得很糟糕,简直是令人发指)
gradle国内的资料没有maven多,因为用的人还少,我们最近框架升级 && 后台系统升级,都是用科特林和gradle,所以遇到了一堆问题,这里记录下模块版本依赖的问题
假如你一个工程student里面有三个模块(student-sdk),(student-module),(student-server)。student-server依赖student-module,那么你需要在student-server中的build.gradle里面这样写
dependencies {
compile project(':student-module')
}
如果你还依赖了第三方SDK,那么你在dependencies 里面加就行了,但是这里有个我搞不明白的问题,如果你的(student-sdk),(student-module),(student-server)三个模块,有两个使用了第三方依赖,假如依赖如下,版本号如下
api "com.test:test-a:1.1.1.1"
结果会出现版本降低的情况,test-a这个SDK会比1.1.1.1的版本号低的情况(其实是因为你jar冲突了,又不知道被你自己的哪个依赖给顶了),一般情况下我使用指令下载依赖查看,然后exclude都可以解决问题
但是我找了半天,并且用 指令下载下来依赖关系,也没找到,我搜了全局的配置依赖关系都是1.1.1.1自动变为了1.1.1.0,这就离谱了,于是我强行把三个模块都指定了第三方依赖,就是三个模块我都加了下面这个依赖,最后没问题了,我并不知道为什么会这样,但是尽然可以了
api "com.test:test-a:1.1.1.1"
期间我尝试了一下操作发现一点用也没, 问题是解决了,但是我并不知道为什么,所以我再次吐槽一下gradle真不好用
// 我使用的无用操作,也许对你们有用
// 依赖排除
transitive = true
// 强行指定依赖版本
force=true