作家
登录

Gradle for Android 第五篇( 多模块构建 )

作者: 来源: 2017-04-14 09:18:19 阅读 我要评论

给你的app模块添加Java模块,这很简单,不是吗?

  1. include ':app'':library' 

Android studio不仅许可你为你的app和依附库创建模块,同时也可为Android wear,Android TV,Google App Engine等创建模块,而这些零丁的模块又可以在一个零丁的项目中应用。举个栗子,在你的app开辟后期阶段,你可能须要用到Google Clound或者Android Wear。这种情况下,你可以在你的工程下拥有三个模块:分别是app,google cloud,Android Wear整合。懂得在一个工程下的多模块构建将会加快你的开辟周期。

在这一章,我们将进修到多模块的构建,并且展示一些实际且有效的栗子:

  • 多模块构建的构造
  • 为你的项目添加模块
  • 建议

多模块构建的构造

平日情况下,一个工程包含多模块,这些模块会在一个父目次文件夹下。为了告诉gradle,该项目标构造以及哪一个子文件夹包含模块,你须要供给一个settings.gradle文件。每个模块可以供给其自力的build.gradle文件。我们已经进修了关于setting.gradle和build.gradle若何正常工作,如今我们只须要进修若何应用它们。

这是多模块项目标构造图:

  1. project 
  2.   ├─── setting.gradle 
  3.   ├─── build.gradle 
  4.   ├─── app 
  5.   │    └─── build.gradle 
  6.   └─── library 
  7.        └─── build.gradle   

这是最简单最直接的方法来创建你的多模块项目了。setting.gradle文件申清楚明了该项面前目今的所有模块,它应当是如许:


为了在你的app模块中添加library模块做为其依附包,你须要在app的build.gradle文件中添加以下内容:

  1. dependencies { 
  2.       compile project(':library')  
  3.  

为了给app添加一个模块作为依附,你须要应用project()办法,该办法的参数为模块路径。

如不雅在你的模块中还包含了子模块,gradle可以知足你得请求。举个栗子,你可以把你的目次构造定义为如许:

  1. project 
  2. ├─── setting.gradle 
  3. ├─── build.grade 
  4. ├─── app 
  5. │    └─── build.gradle 
  6. └─── libraries 
  7.      ├─── library1 
  8.      │    └─── build.gradle 
  9.      └─── library2 
  10.           └─── build.gradle     

在第一步调中,即初始化阶段,gradle会寻找到settings.grade文件。如不雅该文件不存在,那么gradle就会假定你只有一个零丁的构建模块。如不雅你有多个模块,settings.gradle文件定义了这些模块的地位。如不雅这些子目次包含了其本身的build.gradle文件,gradle将会运行它们,并且将他们归并到构建义务中。这就说清楚明了为什么你须要申明在一个模块中申明的依附是相对于根目次。

该app模块依然位于根目次,然则如今项目有2个不合的依附包。这些依附模块不位于项目标根目次,而是在特定的依附文件夹内。根据这一构造,你须要在settings.xml中这么定义:

  1. include ':app'':libraries:library1'':libraries:library2' 

这包管了app和library模块都邑包含在构建设备中。你须要做的仅仅只是为你的模块添加子文件夹。

你会留意到在子目次下申明模块也异常的轻易。所有的路径都是环绕着根目次,即当你添加一个位于子文件夹下的模块作为别的一个模块的依附包得实惠,你应当将路径定为根目次。这意味着如不雅在上例中app模块想要依附library1,build.gradle文件须要这么申明:

  1. dependencies { 
  2.  
  3.     compile project(':libraries:library1'
  4.  
  5.  

如不雅你在子目次下申清楚明了依附,所有的路径都应当与根目次相干。这是因为gradle是根据你的项目标根目次来定义你的依附包的。


  推荐阅读

  “千里眼”助力天津南开区数字化环卫

天津市南开区应用数字化治理批示中间,经由过程信息技巧将门路信息随时回传,体系根据信息快速分发义务,确保实现15分钟内完成辖区门路污染处理。南开区环卫局数字化治理批示中间采守信息>>>详细阅读


本文标题:Gradle for Android 第五篇( 多模块构建 )

地址:http://www.17bianji.com/lsqh/34776.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)