gradle 模块化生成目录

 工程目录新建module.gradle

def moduleName = "home"
def moduleParentPathName = "businessModule"

ext {
    BaseDir = getRootDir().absolutePath                   //根目录
    ModuleParentDir = new File(BaseDir, moduleParentPathName + "/" + moduleName).absolutePath
    //如果有父目录
    ModuleDir = new File(BaseDir, moduleName).absolutePath //module文件
    rootPath = ""
    ManifestContent = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
            "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n" +
            "        package=\"com.anguomob.android." + moduleName + "\">\n" +
            "</manifest>"
    gitIgnoreContent = "/build"
}

//生成module的文件夹
task ensureModuleDirectory {
    group "new module"
    doLast {

        if (moduleParentPathName.isEmpty()) {
            rootPath = ModuleDir
            mkdir(ModuleDir)

        } else {
            rootPath = ModuleParentDir
            mkdir(ModuleParentDir)
        }
        def srcPath = new File(rootPath + "/src")
        def buildPath = new File(rootPath, "/build.gradle")
        def proguardPath = new File(rootPath, "/proguard-rules.pro")
        def gitIgnorePath = new File(rootPath, "/.gitignore")
        buildPath.createNewFile()
        mkdir(srcPath)
        proguardPath.createNewFile()
        gitIgnorePath.createNewFile()

        gitIgnorePath.withOutputStream { os ->
            os << gitIgnoreContent.toString().getBytes()
        }

        def srcMainPath = new File(srcPath, "main")
        mkdir(srcMainPath)


        def mainJavaPath = new File(srcMainPath, "java")
        def mainModulePath = new File(srcMainPath, "module")
        def mainResPath = new File(srcMainPath, "res")
        def mainManifestPath = new File(srcMainPath, "/AndroidManifest.xml")

        mkdir(mainJavaPath)
        mkdir(mainModulePath)
        mkdir(mainResPath)
        mainManifestPath.createNewFile()


        mainManifestPath.withOutputStream { os ->
            os << ManifestContent.toString().getBytes()
        }


        def packageName = new File(mainJavaPath, "com/anguomob/android/" + moduleName)
        mkdir(packageName)


        def moduleManifest = new File(mainModulePath, "/AndroidManifest.xml")
        moduleManifest.createNewFile()


        moduleManifest.withOutputStream { os ->
            os << ManifestContent.toString().getBytes()
        }

        def resDrawable = new File(mainResPath, "drawable")
        def resLayout = new File(mainResPath, "layout")
        def resMipmap = new File(mainResPath, "mipmap-xxhdpi")
        def resValues = new File(mainResPath, "values")
        mkdir(resDrawable)
        mkdir(resLayout)
        mkdir(resMipmap)
        mkdir(resValues)


    }

    doLast {
        def buildPath = new File(rootPath, "/build.gradle")
        def rootContent = new File(getRootDir(), "/root.dat")

        buildPath.withOutputStream { os ->
            os << rootContent.getBytes()
        }
    }

}






执行命令

gradlew ensureModuleDirectory

即可生成对应的模块化目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安果移不动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值