2016-09-26 3 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' 
} 

и я использовал его в качестве модулей

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 SDK & Если я использую его в новом приложении, зависимости, упомянутые в библиотеке, не разрешаются.

я попытался в том числе зависимость как

compile ('com.github.xxx:module2:[email protected]') { 
    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

Проверьте файл POM в jcenter repo, чтобы проверить, находятся ли зависимости в файле. –

ответ

0

Отвечая на мой собственный вопрос, так что может быть полезно для любого. Спасибо @Gabriele Mariotti, Я проверил созданный pom, поскольку там нет доступных тегов зависимостей, поэтому в поиске & найдено snippet, чтобы добавить его.

но они добавили его в publications, в моем случае один модуль зависит от другого модуля, который пока еще не опубликованы, что зависимость упоминается в build.gradle из module2 в complie project(':module1') и его создание новой POM, который не сделал содержит имя, описание и т. д., теги в папке публикаций.

Так я добавил его к предыдущему П полой области создания & это работает для меня

Вот обновленная часть Gradle-МВН-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) 
      } 
     } 
     } 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^