【问题标题】:Gradle - inherit repositories from a moduleGradle - 从模块继承存储库
【发布时间】:2015-08-28 03:15:50
【问题描述】:

首先,我解释一下我的项目设置。我使用 Android Studio 中使用的 Project/Module 一词。

我的项目设置如下:

  • LibraryProject => 一个仅对我的库进行分组的项目,如果需要,我会在其他项目中使用它

    • BackupLibrary(模块)
    • DatabseLibrary(模块)
    • MainUtilityLibrary(模块)
    • DialogLibrary(模块)
  • 我的项目1

    • 应用(项目)
    • DialogLibrary(模块,引用自 DIRFFERENT 项目)

我的 Project1 现在如下所示:

1) 我从另一个项目中引用了我想使用的模块(在settings.gradle (Project Settings) 文件中完成:

include ':app'

include ':dialogLibrary '
project(':dialogLibrary ').projectDir = new File(settingsDir, '../LibraryProject/DialogLibrary ')

2) 我将外部库模块作为依赖项添加到我的应用程序的build.gradle:

dependencies {
    compile project(':dialogLibrary ')
}

我的 LibraryProject 如下所示:

我将存储库和依赖项直接添加到模块的`build.gradle'(这足以毫无问题地自行构建模块):

allprojects {
    repositories {
        maven { url 'https://dl.bintray.com/drummer-aidan/maven' }
    }
}

dependencies {
    compile 'com.afollestad:material-dialogs:0.7.5.2'
}

问题

到目前为止的设置不适用于 MyProject1。我还必须将maven { url 'https://dl.bintray.com/drummer-aidan/maven' } 添加到 MyProject1,compile project(':dialogLibrary ') 还不够。我必须将应该以某种方式从 LibraryModule 继承的依赖项添加到 MyProject1 Project build.gradleagain ,如下所示:

allprojects {
    repositories {
        mavenCentral()
        maven { url 'https://dl.bintray.com/drummer-aidan/maven' } // com.afollestad:material-dialogs
    }
}

否则,我无法编译我的项目。这种方式似乎做了两次可能可以自动完成的事情。但是怎么做?这样,每当我从我的 LibraryProject 中包含一个模块时,我都必须检查是否需要额外的 maven repo...

【问题讨论】:

    标签: android maven gradle dependencies


    【解决方案1】:

    我认为这与 Gradle 在构建 MyProject1 时不知道 LibraryProject 的 settings.gradle 文件这一事实有关。所以它包括dialogLibrary,就好像它是它自己的一个普通子项目一样。这解释了MyProject 不知道 Maven 存储库的原因; LibraryProject的配置尚未加载。

    也许您可以通过LibraryProject 包含dialogLibrary?虽然我做了一些测试,但无法让它工作。这可能与 Gradle 的限制有关。有一篇关于多个 settings.gradle 文件的 StackOverflow 帖子here

    一种变通方法是构建 LibraryProject 的模块并使用它们。例如,将 DialogLibrary 构建到 jar 中,将其上传到 Maven 存储库,然后在您的 App 项目中仅包含 DialogLibrary 作为正常依赖项(不要忘记包含 Maven 存储库)。

    【讨论】:

      猜你喜欢
      • 2018-05-23
      • 2012-08-16
      • 2018-02-25
      • 1970-01-01
      • 1970-01-01
      • 2011-08-14
      • 2017-04-13
      • 1970-01-01
      • 2011-09-15
      相关资源
      最近更新 更多