2016-11-17 120 views
0

爲了簡化我將要調用的庫,我使用了library_a.aar和library_b.aar。嵌套的aar依賴不起作用

這是我正面臨的情況。 library_a被構建並推送到maven_repository,在這裏沒有問題。 library_b取決於library_a並添加到library_b如下:

repositories { 
    maven { 
     credentials { 
      username USERNAME 
      password PASSWORD 
     } 
     url "https://api.bitbucket.org/1.0/repositories/COMPANY/maven_repository/raw/releases" 
    } 
} 

dependencies { 
    ... 
    compile 'package:library_a:1.0' 
    ... 
} 

library_b是建立與沒有錯誤,並上傳到maven_repository。

現在我的應用程序依賴於library_b,我需要通過提供(如上所述)存儲庫以及證書來添加它。

,我要面對的第一個問題是,爲了編譯library_b在我的項目,它需要通過以下方式進行編譯:

dependencies { 
    ... 
    compile 'package:library_b:[email protected]' 
    ... 
} 

我必須添加@aar否則gradle這個億韓元」我不認識它,但我不需要用library_a來做到這一點。

第二個問題是,當我構建應用程序時,我收到警告,說它無法找到對library_a中可用類的引用。我在這裏錯過了什麼?我確實嘗試添加transitive = true to library_a

dependencies { 
     ... 
     compile ('package:library_a:1.0') { 
      transitive = true; 
     } 
     ... 
} 

但是絕對沒有什麼用。我沒有檢查pom文件,它包含適當的依賴關係。 難道我在做什麼不被gradle支持,我必須在我的應用程序中編譯library_a和library_b?

+0

你如何上傳AAR對Maven的回購?通過執行一個gradle任務或手動? – larsgrefer

+0

@larsgrefer我使用https://github.com/JeroenMols/GitAsMaven上傳 –

回答

0

聽起來像你的maven回購只包含aar文件,但沒有或錯誤pom文件。

您是否正在使用以下Gradle插件和uploadArchives gradle任務以將aar上傳到您的Maven存儲庫? https://github.com/dcendents/android-maven-gradle-plugin

試試這個gradle這個片段爲您aar S:

buildscript { 
    repositories { 
     mavenCentral() 
    } 

    dependencies { 
     classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' 
    } 
} 

apply plugin: 'com.android.library' 
apply plugin: 'com.github.dcendents.android-maven' 

android { ... } 

dependencies { ... } 

uploadArchives { 
    repositories { 
     mavenDeployer { 
      repository(url: "https://api.bitbucket.org/1.0/repositories/COMPANY/maven_repository/raw/releases") { 
       authentication(userName: USERNAME, password: PASSWORD) 
      } 
     } 
    } 
} 

然後使用uploadArchives gradle這個任務

+0

pom文件是否有正確的依賴關係。我使用了GitAsMaven github示例(https://github.com/JeroenMols/GitAsMaven)。 –