当前位置: 首页 > news >正文

山西网站建设公司百度一下子就知道了

山西网站建设公司,百度一下子就知道了,政府网站 banner flash,租用阿里云做网站1. 前言 在工作中,由于各种原因,导致需要将两个可单独运行的App项目,合并到一个git仓库里,且单独的App项目里还有其他Module模块。 如果只是将两个项目复制到同一个文件夹下,还是得单独打开各个项目,是很不…

1. 前言

在工作中,由于各种原因,导致需要将两个可单独运行的App项目,合并到一个git仓库里,且单独的App项目里还有其他Module模块。
如果只是将两个项目复制到同一个文件夹下,还是得单独打开各个项目,是很不方便的。
而我想到达到的效果是,Android Studio打开两个项目同属的根文件夹,即可加载出两个项目,可以在Android Studio内部切换项目编译运行。

如下图所示,我们现在有两个项目

  • MyProject1 : 里面有依赖MyModule1这个Library
  • MyProject2 : 是一个单独的App,没有依赖其他Library

接下来,我们就以这两个项目为例,通过修改gradle,合并到一个项目中

在这里插入图片描述

2. include 函数用法

首先,我们都知道在Gralde中,include函数可以用来依赖子项目。
比如我们新建的项目,在settings.gradle中,就会有这么一句,用来依赖app模块。

include ":app"

我们点击include,可以发现include其实是一个方法,参数是个可变字符串,可以传入若干个项目的路径,比如:app

default void include(String... projectPaths) {this.include((Iterable)Arrays.asList(projectPaths));
}

那如果项目是在子目录需要怎么办呢 ?
这里的:是用来分割目录的,那么依赖子目录的项目就是:xxxx:yyyy这种形式了

3. 实现步骤

3.1 创建一个新的项目

我们知道了include的用法,那么就可以用include来实现合并。
首先我们先创建一个全新的项目,比如MyProjectTest,并删除其app文件夹下的代码。

在这里插入图片描述

3.2 复制项目到MyProjectTest

MyProject1MyProject2复制到MyProjectTest
在这里插入图片描述

3.3 修改settings.gradle

修改MyProjectTestsettings.gradle
原本是这样两行代码

rootProject.name = "MyProjectTest"
include ':app'

修改为

rootProject.name = "MyProjectTest"
include ':MyProject1:app'
include ':MyProject1:MyModule1'
include ':MyProject2:app'

点击下Sync按钮,会提示报错
在这里插入图片描述
因为在MyProject1中,我们依赖了MyModule1

implementation project(':MyModule1')

所以这里提示找不到了,需要修改为 :MyProject1:MyModule1

implementation project(':MyProject1:MyModule1')

这时我们再点击Sync按钮,可以发现多了两个可运行的项目选项

在这里插入图片描述
选择一个项目,点击运行,可以发现正常安装到手机上了。

4. 进一步优化

到这里,本文的目标基本就完成了,实现了将两个项目合并到一个项目中。
但是,这个时候,我们如果用Android Studio单独打开MyProject1,会发现MyProject1编译报错了。
因为我们将implementation project(':MyModule1')修改为了implementation project(':MyProject1:MyModule1'),与MyProjectTest产生了耦合。
这显然是不合理的,理想的情况,应该是合并两个项目后,单独的项目依旧可以在Android Studio上单独运行。
那应该怎么办呢 ?

4.1 给项目指定路径

其实,我们可以使用project.projectDir ,指定子项目的路径。

修改MyProjectTestsettings.gradle,给MyModule1指定路径。

rootProject.name = "MyProjectTest"include ':MyProject1:app'
include ':MyModule1'
include ':MyProject2:app'project(':MyModule1').projectDir = new File('/MyProject1/MyModule1')

然后将MyProject1下的 implementation project(':MyProject1:MyModule1')依赖修改会implementation project(':MyModule1')

再次点击Sync按钮,点击运行,发现依旧是可以运行的。

而且,这个时候,单独用Android Studio打开MyProject1,也是能够单独运行的。

4.2 给子项目改名

在这里插入图片描述

点击Edit Configurations,我们还可以给子项目改名

在这里插入图片描述
删除名字里的.app,最终效果如下

在这里插入图片描述
至此,我们就完成了将两个项目合并成一个项目的所有操作。

5. 如果还有一个可单独运行的项目 ?

如果MyProject2中还有一个可单独运行的子项目,那需要怎么整合呢 ?
其实也是一样的,在MyProjectTestsettings.gradle中,增加include依赖。

include ':MyProject2:xxxx'

这里的xxxx是这个子项目的名称,然后Sync一下,就可以看到这个子项目单独的运行入口了。

6. 其他

6.1 本文源码

源码下载地址 : Android Studio中,将两个项目合并到一个项目中

6.2 参考

【Android Gradle 插件】settings.gradle 配置文件 ( 配置基本作用 | include 函数用法 | 目录层级配置 | 修改 Module 模块构建脚本名称 )_setting.gradle 构建多项目 设置构建包名称

http://www.hkea.cn/news/855688/

相关文章:

  • 阿里云网站备案时间无锡seo网站管理
  • 景点介绍网站模板重庆百度关键词推广
  • 做亚马逊网站费用吗曲靖新闻今日头条
  • bing 网站管理员2023今日新闻头条
  • 深圳市做网站前十强百度一下搜索网页
  • 做执法设备有哪些网站国家免费培训学校
  • 顺德乐从有做阿里巴巴的网站吗杭州网站设计
  • 做英文网站 用阿里服务器行吗b2b网站推广排名
  • 搭建网站做淘宝客网赌怎么推广拉客户
  • 网站建设前台与后台最新技术2021最新免费的推广引流软件
  • 做网站基本语言淘宝如何提升关键词排名
  • wordpress怎样分类目录添加标签seo文章范文
  • 订阅号可以做网站吗南宁seo外包服务商
  • 邢台哪儿做网站便宜宁波 seo排名公司
  • 深圳网站优化咨询网上广告怎么推广
  • 网站右击无效是怎么做的网络营销产品
  • 中宣部网站政治建设网站服务器是什么意思
  • 淮安网站定制徐州seo外包公司
  • 嘉兴类网站系统总部网站建设技术解决方案
  • 做网站的教科书外包网络推广公司推广网站
  • 模板名字 wordpress优化大师如何删掉多余的学生
  • 3d网站建设制作百度关键词优化手段
  • 新手做那些网站比较好东莞企业网站排名
  • 欧美风格网站360指数
  • 优秀网站建设公司电话下列哪些店铺适合交换友情链接
  • 58同城乌鲁木齐网站建设重庆网站到首页排名
  • wordpress知言主题山东服务好的seo公司
  • 旅游商务平台网站建设功能需求关键词排名查询官网
  • 做网站要搭建本地服务器么微商引流被加方法精准客源
  • 网站名字要备案吗友情链接怎么弄