2016-12-01 101 views
1

我有几个共享一些本地开发的库的项目;这些库从静态到随着使用它们的应用程序的增长而灵活更新。Android Studio中包含多个库的最佳实践项目布局

为了调试/更新的目的,将它们作为我的项目的一部分很有用(当新版本库发布时,如果运行主应用程序项目时发现错误,我可以根据需要测试/更新库)。

对于建筑目的来说,重建项目时它也会重建(有时是大型的)库。

从我的角度来看,如果某些库可能被设置为不重建或清除,除非明确完成,那将是理想的。或者如果我可以在JAR/AAR库与完整模块之间切换它们。

在这一点上,我想知道是否有更好的方法。

所以,如果你想在一个项目中包含一个库(用于编辑/更新的目的),但不想一直重建,有没有办法,最佳实践是什么?

FWIW,基本结构我目前拥有的是:

MainApp

  • 平台特定的代码
  • 库的应用程序(通常是特定于应用程序的平台独立的代码)
  • 本地utils的lib(可以相当动态,但通常每天/每周不变)
  • 其他本地应用程序(相当静态,偶尔更新)

回答

0

您可以将库作为单独的项目,然后在库中使用maven plugin作为本地工件安装。更多详情Deploying an Artifact to the Local Cache in Gradle

在你的项目,你需要mavenLocal()添加到存储库在你的根的build.gradle:

repositories { 
    mavenCentral() 
    mavenLocal() 
} 

并添加依赖关系到项目的build.gradle:

dependencies { 
    ... 
    compile 'com.your.library:x.y.z' 
    ... 
} 

但是,如果您的项目在您的本地网络中共享,则需要使用存储库管理,如Artifactory by JFrogNexus Repository Manager by Sonatype

+0

对延迟响应抱歉...这意味着我可以在运行我的主项目时需要更改库源文件吗? 我只是想了解,如果这只是另一种连接库/ jar的方式。 – RabidMutant

+0

它的工作方式与我们使用Maven Central等远程服务器的依赖关系一样。好处是,我们可以更改库代码并将其发布到maven本地缓存。每次我们更改库代码时,我们都需要将它重新发布到本地maven,然后我们只需要重新同步主项目即可使用最新的库代码。 –

+0

此外,如果您不想使用库中的最新代码(如x.y.z版本),则可以使用先前发布的x.y.y版本。 –