工程目录新建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

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

gradle 模块化生成目录_git