利用gradle添加构建版本号

在java的程序中,貌似都没有这个构建版本号的概念,用的诸如eclipse, idea和android studio的IDE也没有直接提供构建版本号的选项。不过我却想在android程序的版本号当中添加一个构建版本号,当然,这个只是个人的蛋疼需求。虽然在stackoverflow上看到其他人也有这种需求,但相信人不多。

这里分享一下我的解决方法。

首先在app的build.gradle中的android方法里面,把defaultConfig的代码替换成以下代码:

    def verName = "1.0.0"
    def suffix = "(RC)"

    defaultConfig {
        applicationId "cn.irains.access.v2"
        minSdkVersion 14
        targetSdkVersion 20
        versionCode 5
        versionName verName + suffix
    }

    def versionPropsFile = file('version.properties')

    if (versionPropsFile.canRead()) {
        def Properties versionProps = new Properties()

        versionProps.load(new FileInputStream(versionPropsFile))

        def name = versionProps['VERSION_NAME'].toInteger()

        def runTasks = gradle.startParameter.taskNames
        if ('b' in runTasks || 'build' in runTasks ) {
            name++
        }

        versionProps['VERSION_NAME']=name.toString()
        versionProps.store(versionPropsFile.newWriter(), null)
        defaultConfig {
            versionName verName + "." + name + suffix
        }
    }

    android.applicationVariants.all { variant ->
        def file = variant.outputFile
        variant.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))
    }

上面的android.applicationVariant.all就是指定了新的apk的文件名。前面的一大堆代码都是构建版本号的逻辑。因为是构建版本号,所以先读取任务,仅在任务为b(build的缩写)或build的情况下,版本号才加一。

然后我们还需要在build.gradle的同级目录下建立一个叫version.properties的文件,用于保存构建版本号。

完成之后,构建一下试试吧。

时间: 2024-07-28 13:15:33

利用gradle添加构建版本号的相关文章

利用gradle加入构建版本

在java的程序中,貌似都没有这个构建版本的概念.用的诸如eclipse. idea和android studio的IDE也没有直接提供构建版本的选项.只是我却想在android程序的版本其中加入一个构建版本,当然,这个仅仅是个人的蛋疼需求.尽管在stackoverflow上看到其它人也有这样的需求,但相信人不多. 这里分享一下我的解决方法. 首先在app的build.gradle中的android方法里面,把defaultConfig的代码替换成下面代码: def verName = "1.0

[Gradle] 在 Eclipse 下利用 gradle 构建系统

转载自:http://www.ibm.com/developerworks/cn/opensource/os-cn-gradle/ 构建系统时候常常要用到 Ant, Maven 等工具,对于初学者来说,它们还是过于复杂,上手还是需要时间的.本文将向读者介绍一种全新的构建项目的方式 gradle,它简单.上手快,能大大节省项目的时间和成本. 在 eclipse 下利用 gradle 构建系统 基本开发环境 操作系统:本教程使用的为 Windows Vista Enterprise, 如果您的系统是

在 Eclipse 下利用 gradle 构建系统

在 eclipse 下利用 gradle 构建系统 基本开发环境 操作系统:本教程使用的为 Windows Vista Enterprise, 如果您的系统是 Linux 的,请选择下载对应版本的其他工具,包括开发工具.Java EE 服务器.Apache Ant.SoapUI. 开发工具:Eclipse IDE for SOA Developers 版本,请到 http://www.eclipse.org/downloads/ 网站下载,当然任何版本的 eclipse 都是可以的. Java

第一次使用Android Studio时你应该知道的一切配置(三):gradle项目构建

?[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4456420.html 联系方式:[email protected] [系列] 第一次使用Android Studio时你应该知道的一切配置 第一次使用Android Studio时你应该知道的一切配置(二):新建一个属于自己的工程并安装Genymotion模拟器 第一次使用Android Stu

Gradle笔记——构建基础

本篇文章主要介绍一下Gradle的构建基础. 它看起来似乎和android项目没多大关系.不能让人一下子理解android项目中的Gradle配置文件,可是这篇基础真的非常重要. 学习Gradle前,须要有一个Groovy语言的基础,以免被Groovy的语法困扰.反而忽略了Gradle的知识.这里有一个Groovy的简明中文教程文档,能够高速学习Groovy的一些语法:http://download.csdn.net/detail/maosidiaoxian/8049823 1 Projects

Android Studio中Gradle统一管理版本号引用配置

Gradle统一管理版本号引用配置 为了提高项目开发效率,在实际项目开发过程中往往会引入一些开源框架,还有项目中使用的各种module,moudle过多时最好提供一种统一的方式去管理版本号,如:compileSdkVersion.buildToolsVersion.androidTestCompile 等,便于日后对版本号进行维护,此处记录2种方式处理上述问题. 方式一 1.在项目根目录下创建.gradle文件,如:config.gradle 2.在根目录下的build.gradle文件中引入我

Android - Gradle项目构建依赖

Gradle项目构建依赖 本文地址:http://blog.csdn.net/caroline_wendy Android使用Gradle构建时,由于模块之间的依赖关系,和Gradle升级的兼容性,会导致异常,常见的问题: (1) Error: No such property: target for class: com.android.build.gradle.LibraryExtension_Decorated. 删除target = 'android-20',最新版本的Gradle已经不

Gradle之旅-使用gradle+eclipse构建web项目

在前一篇博文中我们成功的搭建好了eclipse+gradle环境,那么接下来就开始使用eclipse+gradle构建web项目吧. 我们先打开eclipse新建一个动态web项目,到设置webcontent时将webcontent改为webroot(这只是个人喜好,可以不用修改,也可以修改为其他目录,gradle默认的是/src/main/webapp,但是我个人不是很喜欢这样的目录结构,所以我会在gradle的构建文档中定义默认的webcontent目录),创建好web项目后我们在src下添

【转帖】如何利用Spring Cloud构建起自我修复型分布式系统

http://zhidao.baidu.com/link?url=tSKwdn3wr8KUxWMteHmneFtY0KoNZBMK9Xy-RimsdISA4h2neAecgHqggBipz2w6nXrvD3MmcPbiP5Q6ketfpz03gDLZRoh86p_eVa8bRpe 利用Netflix所打造的组件及各类大家熟知的工具,我们完全可以顺利应对由微服务以及分布式计算所带来的技术挑战. 在过去一年当中,微服务已经成为软件架构领域一个炙手可热的新名词,而且我们也能轻松举出由其带来的诸多比较优