Gradle - 将android库与其他android librairies包装在里面

时间:2015-06-24 01:37:18

标签: android gradle android-gradle build.gradle

我想构建一个android库并将其打包为其中包含其他子库的aar。

我有一个这样的项目:

SDK

  • mainLib
  • libA
  • libB

我想用libA构建mainLib,libB打包在mainLib.aar中。 这样我就可以将mainLib分发给包含libA和libB的用户。

我的mainLib build.grade依赖关系块如下所示:

    

dependencies 

    {
  

    compile project(‘:libA:libA-library')
  

    compile project(':libB:libB-   library'')
  



    }



我已尝试过上述内容,但我发现mainLib aar不包含libA和libB。请帮忙。

1 个答案:

答案 0 :(得分:0)

这是对的。 MainLib.aar不包含其他aar库。

然而,Maven将管理正确的依赖关系。

如果您将在Maven回购中发布,您将看到如下内容:

<强> libA.pom

<project>
   <groupId>mygroupID</groupId>
   <artifactId>libA</artifactId>
   <version>X.Y.Z</version>
   <packaging>aar</packaging>
</project>

<强> MainLib.pom

<project>
   <groupId>mygroupID</groupId>
   <artifactId>mainLib</artifactId>
   <version>X.Y.Z</version>
   <packaging>aar</packaging>

  <dependencies>
    <dependency>
      <groupId>mygroupID</groupId>
      <artifactId>libA</artifactId>
      <version>X.Y.Z</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>
</project>

这意味着,如果有人在build.gradle中使用:

dependencies{
    compile 'mygroupID:mainLib:X.Y.Z'
}

他将下载MainLib.aar和所有其他依赖项。