zoukankan      html  css  js  c++  java
  • 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始终是一个仓库。

    其它

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

  • 相关阅读:
    Reference Counting GC (Part two :Partial Mark & Sweep)
    Reference Counting GC (Part one)
    Union File System
    Linux Cgroups
    Mark Sweep GC
    取模运算
    负数取模怎么算
    牛客【2021寒假集训营第一场】J-一群小青蛙呱蹦呱蹦呱
    记codeforces一个简单模拟题
    筛法求素数
  • 原文地址:https://www.cnblogs.com/mikisakura/p/12983559.html
Copyright © 2011-2022 走看看