def isHet() { def has = hasProperty('NEXUS_TYPE'); if (has) { return NEXUS_TYPE.contains("maven") ? false : true; } else { return true; } } //全局扩展参数 ext { //默认参数配置 config = [GROUP : "com.github.szhittech", POM_PACKAGING : "aar", HET_NEXUS_RELEASES : "http://200.200.200.40:8083/nexus/content/repositories/releases/",//#发布releases版的地址 HET_NEXUS_SNAPSHOTS : "http://200.200.200.40:8083/nexus/content/repositories/snapshots/",//#发布snapshots版的地址 JCENTER_NEXUS_SNAPSHOTS: "https://oss.sonatype.org/content/repositories/snapshots/",//#JCenter快照版snapshots的地址 JCENTER_NEXUS_RELEASES : "https://oss.sonatype.org/service/local/staging/deploy/maven2/",//#JCenter快照版RELEASES 的地址 NEXUS_USERNAME : "szhittech", NEXUS_PASSWORD : "het123456", NEXUS_USERNAME_HET : "admin", NEXUS_PASSWORD_HET : "admin123", POM_DESCRIPTION : "szhittech", POM_URL : "https://github.com/szhittech/szhittech", POM_SCM_URL : "https://github.com/szhittech/szhittech", POM_SCM_CONNECTION : "scm:git@github.com:szhittech/szhittech.git", POM_SCM_DEV_CONNECTION : "scm:git@github.com:szhittech/szhittech.git", POM_LICENCE_NAME : "The Apache Software License, Version 2.0", POM_LICENCE_URL : "http://www.apache.org/licenses/LICENSE-2.0.txt", POM_LICENCE_DIST : "repo", POM_DEVELOPER_ID : "szhittech", POM_DEVELOPER_ID : "szhittech" ] allprojects { repositories { if (isHet()) { //设置本地nexus仓库环境地址 maven { url config.HET_NEXUS_RELEASES } maven { url config.HET_NEXUS_SNAPSHOTS } } else { //设置远程nexus仓库环境地址 maven { url config.JCENTER_NEXUS_SNAPSHOTS } maven { url config.JCENTER_NEXUS_RELEASES } } } } //Android编译版本管理 android = [compileSdkVersion: 23, buildToolsVersion: "23.0.1", minSdkVersion : 15, targetSdkVersion : 23, versionCode : 1, versionName : "1.0"] //第三方依赖库 thirddependencies = ["appcompat-v7" : 'com.android.support:appcompat-v7:23.0.1', "logging-interceptor": 'com.squareup.okhttp3:logging-interceptor:3.1.2', "rxandroid" : 'io.reactivex:rxandroid:1.2.1', "adapter-rxjava" : 'com.squareup.retrofit2:adapter-rxjava:2.0.2', "retrofit" : 'com.squareup.retrofit2:retrofit:2.1.0', "converter-gson" : 'com.squareup.retrofit2:converter-gson:2.0.0-beta3', "gson" : 'com.google.code.gson:gson:2.6.2', "activeandroid" : 'com.michaelpardo:activeandroid:3.1.0-SNAPSHOT', "butterknife" : 'com.michaelpardo:activeandroid:3.1.0-SNAPSHOT', "fresco" : 'com.facebook.fresco:fresco:0.9.0+' ] //如果要提交release版,则定义snapshot="" String snapshot = "-SNAPSHOT" // String snapshot = "" //HeT模块版本 libsversion = [hetapmodule : "1.0.0" + snapshot,//和而泰AP绑定(hetapmodule) 模组ID:28 hetsmartlink : "1.0.0" + snapshot, //和而泰smartlink绑定(在庆科基础上修改 hetsmartlink) 模组ID:10 realtekmodule : "1.0.0" + snapshot,//科中龙(realtekmodule) 模组ID:4 xlwmodule : "1.0.0" + snapshot,//新力维_NL6621底层库(xlwmodule) 模组ID:6 sctechmodule : "1.0.0" + snapshot,//双驰达(sctechmodule) 模组ID:15 elianmodule : "1.0.0" + snapshot,//信驰达_MTK7681底层库(elianmodule) 模组ID:5 marvellmodule : "1.0.0" + snapshot,//Marvell(marvellmodule) 模组ID:v1=8,v2=27 esptouchmodule : "1.0.0" + snapshot, //乐鑫信息科技(esptouchmodule) 模组ID:7 cooeemodule : "1.0.0" + snapshot,//博通(cooeemodule) 模组ID:20 hetlogsdk : "1.0.0" + snapshot,//全局日志库 hetbindbizsdk : "1.0.2" + snapshot,//绑定业务库 hetbinduisdk : "1.0.2" + snapshot,//绑定界面库 hetudpsdk : "1.0.4" + snapshot,//udp通讯库 hetxmlprotocolsdk: "1.0.0" + snapshot,//xml协议解析库 hetbasicsdk : "1.0.5" + snapshot//xml协议解析库 ] //HeT模块名称 libsname = [hetapmodule : "hetapmodule", hetsmartlink : "hetsmartlink", realtekmodule : "realtekmodule", xlwmodule : "xlwmodule", sctechmodule : "sctechmodule", elianmodule : "elianmodule", marvellmodule : "marvellmodule", esptouchmodule : "esptouchmodule", cooeemodule : "cooeemodule", hetlogsdk : "hetlogsdk", hetbindbizsdk : "hetbindbizsdk", hetbinduisdk : "hetbinduisdk", hetudpsdk : "hetudpsdk", hetxmlprotocolsdk: "hetxmlprotocolsdk", hetbasicsdk : "hetbasicsdk" ] //HeT依赖库 dependencies = ["hetapmodule" : "${config.GROUP}:${libsname.hetapmodule}:${libsversion.hetapmodule}", "hetsmartlink" : "${config.GROUP}:${libsname.hetsmartlink}:${libsversion.hetsmartlink}", "realtekmodule" : "${config.GROUP}:${libsname.realtekmodule}:${libsversion.realtekmodule}", "xlwmodule" : "${config.GROUP}:${libsname.xlwmodule}:${libsversion.xlwmodule}", "sctechmodule" : "${config.GROUP}:${libsname.sctechmodule}:${libsversion.sctechmodule}", "elianmodule" : "${config.GROUP}:${libsname.elianmodule}:${libsversion.elianmodule}", "marvellmodule" : "${config.GROUP}:${libsname.marvellmodule}:${libsversion.marvellmodule}", "esptouchmodule" : "${config.GROUP}:${libsname.esptouchmodule}:${libsversion.esptouchmodule}", "cooeemodule" : "${config.GROUP}:${libsname.cooeemodule}:${libsversion.cooeemodule}", "hetlogsdk" : "${config.GROUP}:${libsname.hetlogsdk}:${libsversion.hetlogsdk}", "hetbindbizsdk" : "${config.GROUP}:${libsname.hetbindbizsdk}:${libsversion.hetbindbizsdk}", "hetbinduisdk" : "${config.GROUP}:${libsname.hetbinduisdk}:${libsversion.hetbinduisdk}", "hetudpsdk" : "${config.GROUP}:${libsname.hetudpsdk}:${libsversion.hetudpsdk}", "hetxmlprotocolsdk": "${config.GROUP}:${libsname.hetxmlprotocolsdk}:${libsversion.hetxmlprotocolsdk}", "hetbasicsdk" : "${config.GROUP}:${libsname.hetbasicsdk}:${libsversion.hetbasicsdk}" ] } //打印当前申明的library的版本号,编译操作者检查,根据此日志在提交的时候要核对版本正确性 ext.libsversion.each { //调用它的each函数,只要传入一个Closure就可以了。 println "###当前版本: ${it}" } //提交Maven的Task任务,此Task将提交工程中Setting.gradle中申明的所有library工程,执行此Task一定要检查library版本和依赖的正确性,要很慎重!!! task upload() { Set uploadProjects = new HashSet<>(); logger.lifecycle('【**下面是需要提交的项目列表,请仔细检查**】') getSubprojects().each { boolean isExists = it.getBuildFile().exists() if (isExists) { boolean isLibrary = it.getBuildFile().getText().contains('com.android.library') if (isLibrary) { boolean noSubProject = it.getSubprojects().isEmpty() if (noSubProject) { String pro = rootProject.ext.dependencies[it.name] if (pro != null) { logger.lifecycle('***正常:' + rootProject.ext.dependencies[it.name]) uploadProjects.add(it) } else { logger.log(LogLevel.ERROR, '***警告:' + it.name + '项目未配置版本控制,此项目提交未成功,请配置版本控制再提交!!!') } } } } } dependsOn { uploadProjects.uploadArchives } }