我有一个包含多个模块的库项目,因此我将其依赖项集中在项目级 build.gradle ,如下所示
ext {
compileSdkVersion = 23
minSdkVersion = 9
targetSdkVersion = 24
buildToolsVersion = '23.0.3'
junit = 'junit:junit:4.12'
mockito = 'org.mockito:mockito-core:1.10.19'
testRunner = 'com.android.support.test:runner:0.5'
appcompat = 'com.android.support:appcompat-v7:24.1.0'
retrofit2 = 'com.squareup.retrofit2:retrofit:2.1.0'
gsonConverter = 'com.squareup.retrofit2:converter-gson:2.1.0'
httpLogInterceptor = 'com.squareup.okhttp3:logging-interceptor:3.4.1'
design = 'com.android.support:design:24.1.0'
cardview = 'com.android.support:cardview-v7:24.1.1'
universalImageLoader = 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
}
我在模块中使用它
dependencies {
compile project(':module1')
compile rootProject.appcompat
compile rootProject.retrofit2
compile rootProject.gsonConverter
compile rootProject.httpLogInterceptor
compile rootProject.design
compile rootProject.cardview
compile rootProject.universalImageLoader
testCompile rootProject.junit
testCompile rootProject.mockito
androidTestCompile rootProject.junit
androidTestCompile rootProject.testRunner
}
在我的示例应用程序(同一项目中的另一个模块)中,我将库模块包含为compile project(':module2')
&它工作正常,但现在我发布了jcenter& amp; sdk如果我在一个新的应用程序中使用它,我在库中提到的依赖关系不会解决。
我尝试包含依赖性,如
compile ('com.github.xxx:module2:1.0.0@aar') {
transitive=true
}
和
compile 'com.github.xxx:module2:1.0.0'
和
compile ('com.github.xxx:module2:1.0.0') {
transitive=true
}
我试过了
How to specify dependencies in aar library?
Can an AAR include transitive dependencies?
如果我错过了任何信息,请发表评论
提前致谢
答案 0 :(得分:2)
回答我自己的问题,这对任何人都有用。感谢@Gabriele Mariotti, 我检查了生成的pom,因为没有依赖标记可用,所以搜索和&找到了snippet来添加它。
但是他们在publications
中添加了它,在我的情况下,一个模块依赖于另一个尚未发布的模块,该模块2的 build.gradle 中的相关性为{{ 1}}并生成新的pom,它不包含publication文件夹中的名称,描述等标签。
所以我将它添加到之前的pom字段创建区域&它对我有用
以下是 gradle-mvn-push.gradle的更新部分
complie project(':module1')