版本号闲谈

来源:互联网 发布:h3c路由配置端口ip网关 编辑:程序博客网 时间:2024/06/06 01:43

版本号闲谈

不管是对于后端还是前段版本兼容始终是个无法避免的难题,而其中的版本号命令也应该符合一定的规则,否则比较版本时就比较麻烦.

版本号的格式:V<主版本号>.<副版本号>.<发布号>版本号的初始值:V1.0.0

版本号管理规则:1、产品的主体构件进行重大修改,主版本号加12、产品升级增加特性副版本号加13、主版本号加1时,副版本号和发布号置为04、副版本号加1时,发布号置为0

Java代码实现版本号比较

针对以上命名的规则,我写了一个版本号比较工具./** * 版本号比较 *  * @author xuyi * @Time 2016年12月3日 下午3:13:14 * @类名 VersionCompare * @功能描述: * @春风十里不如你 * @备注: */public class VersionCompare{    /**     * 这个方法应该算是比较完善的.     *      * @param firstVersion     * @param secondVersion     * @return     */    public static VersionEnum compare(String firstVersion, String secondVersion)    {        if (firstVersion.equals(secondVersion))            return VersionEnum.EQUAL;        if (moreLaterVersion(firstVersion, secondVersion))            return VersionEnum.HIGHER;        return VersionEnum.LOWER;    }    /**     * 判断两个版本号是否为同一个版本号     *      * @param firstVersion     * @param secondVersion     * @return     */    public static boolean isEqualsVersion(String firstVersion, String secondVersion)    {        return firstVersion.equals(secondVersion);    }    /**     * 判断第一个版本号是否比后一个版本号更高     *      * @param firstVersion     * @param secondVersion     * @return     */    public static boolean moreLaterVersion(String firstVersion, String secondVersion)    {        //使用split方法时,注意一点,以"."分隔时要转义,因为使用的是正则处理的.        String[] firstVersions = firstVersion.replace("V", "").split("\\.");        String[] secondVersions = secondVersion.replace("V", "").split("\\.");        int length = firstVersions.length;        for (int i = 0; i < length; i++)        {            boolean later = Integer.compare(Integer.valueOf(firstVersions[i]), Integer.valueOf(secondVersions[i])) > 0;            if (later)            {                return true;            }        }        return false;    }}

/** * 版本比较的枚举类型 *  * @author xuyi * @Time 2016年12月3日 下午3:22:15 * @类名 VersionEnum * @功能描述: * @春风十里不如你 * @备注: */@Getterpublic enum VersionEnum{    LOWER("lower", -1), EQUAL("equal", 0), HIGHER("higher", 1);    private int     code;    private String  desc;    VersionEnum(String desc, int code)    {        this.desc = desc;        this.code = code;    }}
0 0
原创粉丝点击