• Netty章节九:中间代码引用解决方案(Git)


    Protobuf生成的代码多工程共享

    使用Git作为版本控制系统,多工程引用中间代码文件,本示例引用对象为Protobuf生成的代码。

    方案一(不推荐)

    使用 git submodule:git仓库里的仓库

    需要引入Protobuf生成的中间代码的git仓库:ServerProject ClientProject

    中间代码仓库:Protobuf-Java

    proto文件仓库:Data-Proto


    例:将protoc生成的Java代码推送到Protobuf-Java工程中,然后使用git submoduleProtobuf-Java工程引入到ServerProject工程中作为子仓库,此时就包含两个git仓库一个外层的ServerProject一个里层的Protobuf-Java,当需要操作外层仓库的时候只需要进入对应的目录即可,可执行任何git操作都不会对里层的子仓库造成影响。当proto说明文件发生了变化,在本地重新编译生成新得代码然后将他推送到远程的Protobuf-Java仓库中,我们只需要cd到Protobuf-Java子仓库的目录下执行git pull就可以将新更新的内容拉取到当前的子仓库中,即实现代码引用ServerProject也就可以使用。

    示意图

    请输入图片描述

    缺点

    • 外层仓库分支和里层仓库分支切换繁琐
    • 文件安全性,如果Protobuf-Java被拉取下来然后进行了更该后,又重新pull上传到了远程的Protobuf-Java仓库,那么后面的人拉取Protobuf-Java仓库就会产生问题

    方案二(推荐)

    使用 git subtree,他和git submodule的项目结构一样都会拥有:

    需要引入Protobuf生成的中间代码的git仓库:ServerProject ClientProject

    中间代码仓库:Protobuf-Java

    proto文件仓库:Data-Proto


    使用git subtree也是Protobuf-Java的代码拉取到ServerProject 仓库中,唯一不同的是他不会创建一个子仓库,而是将Protobuf-Java/中间仓库于需要引用他的仓库进行文件合并(合并之前会产生一个新的提交),ServerProject始终是一个仓库。

    其它

    也可以将中间生成的代码进行打包,将他部署到私服中然后让需要引用的项目加入其依赖,(版本号修改繁琐)

  • 相关阅读:
    RESTful API规范
    SOAP和RESTful 框架的 简介、对比和区别
    @requestBody 与@requestparam详解
    关于“Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.”
    post和get、PostMapping、GetMapping和RequestMapping
    强引用、软引用、弱引用、虚引用及方法区的垃圾回收策略
    jvm运行时数据区域
    HBase入门
    各种http报错的报错的状态码的分析
    maven配置多个镜像
  • 原文地址:https://www.cnblogs.com/mikisakura/p/12983559.html
Copyright © 2020-2023  润新知