2016-09-26 34 views
0

我有一個具有多個模塊庫項目,讓我集中其在項目層面的依賴的build.gradle像下面如何指定庫(SDK),其中有多個模塊

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' 
} 

和依賴性我用它的模塊,

在我的示例應用程序(在同一項目中的另一個模塊)

,我包括在庫模塊compile project(':module2') &它工作正常,但現在我發表在jcenter的SDK &如果我在一個新的應用程序中使用它,我在庫中提到的依賴關係不能解決。

我試圖包括

compile 'com.github.xxx:module2:1.0.0' 

compile ('com.github.xxx:module2:1.0.0') { 
    transitive=true 
} 

我試圖像

compile ('com.github.xxx:module2:[email protected]') { 
    transitive=true 
} 

依賴性

How to specify dependencies in aar library?

Can an AAR include transitive dependencies?

,如果我錯過了任何信息,請評論

在此先感謝

+0

更新部分檢查POM文件中jcenter repo來驗證依賴關係是否在文件中。 –

回答

0

回答我的問題,所以這可能是任何一個有用的。感謝@Gabriele Mariotti, 我檢查了生成的pom,因爲沒有可用的依賴關係標記,所以搜索&找到snippet來添加它。

但他們補充它publications,在我的情況下,一個模塊取決於其尚未公佈其他模塊上,這種依賴是的build.gradle模塊2的提到作爲complie project(':module1')及其產生哪些沒有新的POM包含出版物文件夾中的名稱,說明等等。

所以我將它添加到以前的POM字段創建區域&它爲我工作

這裏是gradle這個-MVN-push.gradle

if (project.getPlugins().hasPlugin('com.android.application') || 
      project.getPlugins().hasPlugin('com.android.library')) { 
    task install(type: Upload, dependsOn: assemble) { 
     repositories.mavenInstaller { 
     configuration = configurations.archives 

     pom.groupId = GROUP 
     pom.artifactId = POM_ARTIFACT_ID 
     pom.version = VERSION_NAME 

     pom.project { 
      name POM_NAME 
      packaging POM_PACKAGING 
      description POM_DESCRIPTION 
      url POM_URL 

      scm { 
      url POM_SCM_URL 
      connection POM_SCM_CONNECTION 
      developerConnection POM_SCM_DEV_CONNECTION 
      } 

      licenses { 
      license { 
       name POM_LICENCE_NAME 
       url POM_LICENCE_URL 
       distribution POM_LICENCE_DIST 
      } 
      } 

      developers { 
      developer { 
       id pom_developer_id 
       name pom_developer_name 
      } 
      } 

     } 

     //Updated part which adds dependencies in pom 
     pom.withXml { 
      def dependenciesNode = asNode().appendNode('dependencies') 

      //Iterate over the compile dependencies (we don't want the test ones), adding a <dependency> node for each 
      configurations.compile.allDependencies.each { 
      def dependencyNode = dependenciesNode.appendNode('dependency') 
      dependencyNode.appendNode('groupId', it.group) 
      dependencyNode.appendNode('artifactId', it.name) 
      dependencyNode.appendNode('version', it.version) 
      } 
     } 
     } 
    } 
相關問題