Skip to content

zcys12173/SycApp

Repository files navigation

SycApp

Android组件化工程(Module可独立运行)

使用版本

  1. AGP:8.0.2
  2. Kotlin-Plugin:1.8.22
  3. jdk:17
  4. targetSDK:33
  5. minSDK:24

工程结构

  • [build-logic] 通用构建逻辑
  • [build-script] 通用构建脚本
  • [app] 主工程
  • [feature] 业务模块
    • [feature-common] 通用模块
  • [core] 通用基础模块
    • [accessibility] 无障碍模块
    • [image] 图片模块
    • [network] 网络模块
    • [permission] 权限模块
    • [storage] 存储模块
    • [framework] 基础框架模块

模块独立运行

修改build.gradle中的插件为application-plugin

plugins {
    id 'application-plugin'
//    id 'library-plugin'
}

AndroidStudio插件

可以安装 模版代码插件 ,方便快捷创建模版代码,提升开发效率

Module远端依赖&发布

工程支持发布本地module到maven私服

  1. 配置本地maven.properties

    工程根目录下创建maven.properties文件,配置内容如下:

    snapshotUrl=https://packages.aliyun.com/maven/repository/2295471-snapshot-ulWqyW/
    releaseUrl=https://packages.aliyun.com/maven/repository/2295471-release-fIpRog/
    userName=*****
    password=*****

    如果本地没有配置maven.properties,工程依赖全部使用本地依赖方式。

  2. 如何切换remote/local依赖

    根目录 build.gradle中配置subProject.description的值;LOCAL:本地依赖,REMOTE:远端依赖。参考build.gradle示例

  3. 如何发布

    发布到maven的groupIdProject.groupversionProject.version。在根目录的build.gradle中配置,artifactIdProject.name(插件内自动处理,无需手动配置)。如何配置参考 build.gradle示例。

  4. build.gradle示例

    allprojects {
    
     /*
     * 配置Project的group、version、description,主要用于工程依赖和仓库发布
     *
     * Project.group:本地Module发布到maven仓库的GroupId、本地依赖远端module的仓库的GroupId
     *
     * Project.version:本地Module发布到maven仓库的版本号、本地依赖远端module的的版本号
     *
     * Project.description:控制module的依赖方式,LOCAL:本地依赖,REMOTE:远端依赖
     *
     * Project.name:本地Module发布到maven仓库的名称、本地依赖远端module的仓库的名称
     *
     * 发布&远端依赖的maven配置:group:name:version;(参考MavenConfig.kt,ProjectDependenciesConfig.kt)
     *
     * 注:如果没有配置version则会强制使用本地依赖
     */
     it.group = "com.syc.mvvm.libs"
     switch (it.name) {
         case "login":
             it.version = "1.0.0.3-snapshot" //版本号
             it.description = "REMOTE"       //依赖方式,LOCAL:本地依赖,REMOTE:远端依赖
             break
         case "tiktok":
             it.version = "1.0.0.3-snapshot"
             it.description = "LOCAL"
             break
         case "common":
             it.version = "1.0.0.2-snapshot"
             it.description = "REMOTE"
             break
         case "image":
             it.version = "1.0.0.2-snapshot"
             it.description = "REMOTE"
             break
         case "network":
             it.version = "1.0.0.1-snapshot"
             it.description = "REMOTE"
             break
         case "permission":
             it.version = "1.0.0.1-snapshot"
             it.description = "REMOTE"
             break
         case "storage":
             it.version = "1.0.0.2-snapshot"
             it.description = "REMOTE"
             break
         case "accessibility":
             it.version = "1.0.0.2-snapshot"
             it.description = "REMOTE"
             break
         case "framework":
             it.version = "1.0.0.1-snapshot"
             it.description = "REMOTE"
             break
     }

}


About

基于MVVM的组件化模版工程

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages