ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Jenkins开发之——Android项目每次编译版本号增加1

2020-12-16 18:00:31  阅读:358  来源: 互联网

标签:raf String 版本号 line2 versionCode Jenkins Android line


一 思路

  • 获取Android版本配置文件
  • 遍历文件获取版本号versionCode或者版本名versionName
  • 编译前将版本号增加一(版本名的修改类似)
  • 执行assembleRelease打包执行,重新打包

二 修改代码

2.1 config.gradle中配置

  versionCode              : 12,
  versionName              : "1.4",

2.2 代码文件

task modifyVersionCode {
    File file = new File(projectDir.getParent(), '/setting/config.gradle')
    RandomAccessFile raf = null
    try {
        raf = new RandomAccessFile(file, "rw")
        String line = null
        long lastPoint = 0 //记住上一次的偏移量
        while ((line = raf.readLine()) != null) {
            final long point = raf.getFilePointer()
            if (line.contains("versionCode")) {
                String line2 = line.replaceAll(Pattern.compile("\\s*|\t|\r|\n"), "")
                String version = line2.substring(line2.indexOf(':') + 1, line2.indexOf(','))
                String lineNew = line.replace(version, (version.toInteger() + 1) + "")
                raf.seek(lastPoint)
                raf.writeBytes(lineNew)
            }
            lastPoint = point
        }
    } catch (Exception e) {
        e.printStackTrace()
    } finally {
        try {
            raf.close()
        } catch (IOException e) {
            e.printStackTrace()
        }
    }
    return true
}
preBuild.dependsOn modifyVersionCode

2.2 代码说明

  • 文件边读编写使用RandomAccessFile来操作
  • /setting/config.gradle是项目根目录下的配置文件
  • 当遍历到versionCode行时,将空格去除后,找到versionCode后的版本号,并将版本号+1,重新写到文件中
  • 其他行的内容保持不变

三 效果图

四 参考

标签:raf,String,版本号,line2,versionCode,Jenkins,Android,line
来源: https://blog.csdn.net/Calvin_zhou/article/details/111298400

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有