• 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始终是一个仓库。

    其它

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

  • 相关阅读:
    pdfobject (前台展示PDF插件)
    ERROR 19608 --- [ost-startStop-1] c.atomikos.persistence.imp.LogFileLock : ERROR: the specified log seems to be in use already: tmlog in D: ools omcatapache-tomcat-8.5.51in ransaction-logs
    文件上传下载(四) 读 txt 文本 ajaxfileupload
    1129
    centos服务器上部署项目(二) -tomcat
    Guns 打包
    centos服务器上部署项目(一) -jdk,mysql
    layui 学习笔记(四) 复杂表头前台Excel导出
    SpringCloud项目搭建(四) zuul
    sql的基本查询语句
  • 原文地址:https://www.cnblogs.com/mikisakura/p/12983559.html
Copyright © 2020-2023  润新知