欢迎光临
我们一直在努力

【Gradle】Android Gradle 多项目构建

android 项目区别

Android项目一般分为库项目,应用项目,测试项目,Android gradle 根据这些项目分别对应3种插件:com.android.library,com.android.application,com.android.test。

Android多项目设置

定义一个工程,包含很多项目,在Gradle中,项目的结构没有那么多限制,只要在settings.gradle里配置好这些项目就可以了。

库项目引用的配置

Android库项目的引用,通过dependencies实现:

dependencies{ implements project(':plugin') } 

库项目单独发布

搭建自己的maven私服,推荐使用Nexus Repositories Manager。

具体的搭建如下:

1、下载。在https://www.sonatype.com/ 选择对应的软件类型,我这里选择的是OSS3版本,即免费版。 在https://www.sonatype.com/download-nexus-repo-oss 页面根据操作系统选择需要下载的应用。

2、解压。解压后有两个文件夹,nexus-3.13.0-01和sonatype-work。

3、启动。进入nexus-3.13.0-01目录下的bin目录,然后在命令行中输入./nexus start,启动nexus。

4、浏览器访问http://localhost:8081,如访问成功,即表示nexus搭建成功。以默认的管理员帐号admin,密码admin123登录,可以看到默认创建的仓库。

nexus的具体配置这里不展开讲,具体可以在网上找相关资源,这里只用默认配置。

新建名为TestLib的Android Library,在根目录的gradle.properties中配置如下(这里配置是为了方便统一管理,也可以直接写在library的build.gradle中):

# maven local config #正式版本号 versionName=1.0.0 #快照版本号 snapshotVersionName=1.0-SNAPSHOT #快照仓库地址 mavenSnapshotUrl=http://localhost:8081/repository/maven-snapshots/ #发布仓库地址 mavenReleasesUrl=http://localhost:8081/repository/maven-releases/ maven_local_username=admin maven_local_password=admin123 #项目组 id maven_pom_groupId=com.wangyz.plugins #项目名称 maven_pom__artifactId=testlib #打包类型 maven_pom__packaging=aar maven_pom__description=test upload 

在TestLib目录下的build.gradle的android节点下增加以下配置:

// type显示指定任务类型或任务, 这里指定要执行Javadoc这个task,这个task在gradle中已经定义 task androidJavadocs(type: Javadoc) { // 设置源码所在的位置 source = android.sourceSets.main.java.sourceFiles } // 生成javadoc.jar task androidJavadocsJar(type: Jar) { // 指定文档名称 classifier = 'javadoc' from androidJavadocs.destinationDir } // 生成sources.jar task androidSourcesJar(type: Jar) { classifier = 'sources' from android.sourceSets.main.java.sourceFiles } // 产生相关配置文件的任务 artifacts { archives androidSourcesJar archives androidJavadocsJar } //上传 到 maven 的任务 uploadArchives { repositories.mavenDeployer { repository(url: mavenReleasesUrl) { authentication(userName: maven_local_username, password: maven_local_password) } snapshotRepository(url: mavenSnapshotUrl) { authentication(userName: maven_local_username, password: maven_local_password) } pom.project { // 注意:【这里通过切换 versionName 的赋值来区分上传快照包还是正式包(snapshot 版本必须以 -SNAPSHOT 结尾)】 //version snapshotVersionName version versionName artifactId maven_pom__artifactId groupId maven_pom_groupId packaging maven_pom__packaging description maven_pom__description } } } 

命令行切换到TestLib目录下,执行gradle uploadArchives命令,执行成功后,在浏览器中可看到上传成功。

在要引用的项目,如app,在项目根目录的build.gradle的allprojects节点中添加以下配置:

allprojects { repositories { google() jcenter() mavenCentral() mavenLocal() maven { url mavenReleasesUrl } maven { url mavenSnapshotUrl } maven { url 'https://maven.google.com' } } } 

然后在app的build.gradle中引入依赖:

dependencies { implementation 'com.wangyz.plugins:testlib:1.0' } 

同步项目后,即可引用TestLib的相关资源。

参考以下资源,在此表示感谢!

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《【Gradle】Android Gradle 多项目构建》
文章链接:https://www.456zj.com/38198.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址