具有公共示例应用程序gradle设置的私有源库

时间:2015-07-03 07:54:04

标签: android git gradle

我们正在开发android库并且没有打开源。但是,为了方便客户,它分布在maven存储库中。

我们还为此库提供了打开源的示例应用程序。

我们正在尝试进行设置以实现与库同时开发的示例应用程序。因此,如果需要可以方便地进行调试并动态修改代码。

因此我们为app和库创建了两个git存储库。但是将它们合并的最佳方式是什么。我们看到了下一个可能性:

  • 将maven local与库快照一起使用
  • 将示例应用程序复制到库作为模块,并在发布时将所有更改合并到示例应用程序repo,并将库中的库依赖项更新为来自repo的artefact
  • 以前使用git submodule的轻微变化

它们看起来都不高效优雅。但与此同时,我们正在建设的东西并不是唯一的。我不知道其他人是如何做到的。

我尝试在github上搜索库,但所有这些都是公共库,示例应用只是子模块。

重要提示 - 我们正在使用Android Studio,因此最好尽量减少打开的AS窗口的数量

1 个答案:

答案 0 :(得分:1)

您可以创建常规的多项目结构,但可以根据某些条件19.2. Gradle properties and system properties切换依赖项。这样,dev机器上的示例项目可以访问可以编辑和重建的库项目,但是样本的开源用户将回退到maven libary binary dep。

multiproject (under git as 3rd project or as part of the library git)
 library (under git)
   build.gradle
 sample (under another git)
   build.gradle (if has libmodule defined use it, otherwise repo artefact)
 build.gradle
 settings.gradle

伪代码:

dependencies {
    compile hasDevMachineBoolean() ? project(':library') 
                                   : "com.packagename.sdk:library:1.0"
}