Gradle 自动化发布测试apk到nexus服务器.

一: andorid 开发测试流程:

    1.开发人员开发完成---->打包apk-----> 将apk上传的内网服务器-->发送邮件通知给测试人员

    2.测试人员通过邮件-->获取邮件中服务器上的apk包地址进行测试.

    3.我们需要使用Gradle完成上面 apk打包--->上传nexus服务器--->自动发送邮件

二: 环境描述.

    Ubuntu14.04 ,Nexus,Android Stuido3.0 Jdk8.0,Maven,Gradle2.3.1,Groovy你可能需要了解一下,

三:Gradle脚本.

gradle代码如下:

//配置maven插件依赖.
apply plugin: 'maven'

//定义上传构建的类型

//生成javaDoc并使用Jar打包称jar文件.
task androidJavadocs(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}

task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
    classifier = 'javadoc'
    from androidJavadocs.destinationDir
}


//定义需要上传的源代码目录. android-aar java-jar类型.
task androidSourcesJar(type: Jar) {
    classifier = 'sources'
    from android.sourceSets.main.java.srcDirs
}
///

//定义需要上传的构建. 
artifacts {
    File apkFileParent = new File("app/build/outputs/apk")
    apkFileParent.listFiles().each { files ->
	  //上传apk文件到nexus服务器.
          archives file : files
    }
    //配置上传arr.到nexus服务器.
    archives androidSourcesJar 
    //配置上传javaDoc到nexus服务器.
    archives androidJavadocsJar
}


//上传文件方法
uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: "http://192.168.1.201:8081/nexus/content/repositories/xiu8.android/") {
                authentication(userName: "zshh", password: "654321")
            }
            pom.groupId = 'pao.com'
            pom.artifactId = 'paopao'
            pom.version = "1.2"
        }
    }
}

//删除之前的apk文件.
task deleteApk << {
    android.applicationVariants.all{ variant ->
        File file = new File(variant.outputs.get(0).outputFile.parentFile.absolutePath)
        file.listFiles().each { apkFile ->
            apkFile.delete()
        }
    }
}

//发送邮件
tasks sendMail << {

}

//配置任务依赖关系.
uploadArchives.dependsOn deleteApk
sendMail.dependsOn uploadArchives

task pack << {
    dependsOn uploadArchives
    doLast {
        println("发布测试包成功.")
    }
}

四:邮件发送部分还未整理. 待续.

猜你喜欢

转载自blog.csdn.net/shaohuazuo/article/details/79953870