Go 多模塊倉庫標簽管理教程

為了方便自己開發,自己寫了個小工具:DzhGO 代碼生成工具

功能特點標題

  • 初始化項目基礎結構
  • 生成插件模塊代碼
  • 生成模型和實體代碼
  • 生成服務接口和實現代碼
  • 支持 admin 和 app 兩種模塊類型
  • 生成項目基礎目錄

具體介紹看倉庫:
https://github.com/gzdzh-cn/dzhcore/tree/master/dzhgo

因為要用到倉庫多模塊打標簽,以下是自己項目的操作實例和步驟

Go 多模塊倉庫標簽管理教程

目錄結構

dzhcore/                          # 主倉庫根目錄
├── go.mod                        # 主模塊:module github.com/gzdzh-cn/dzhcore
├── main.go                       # 主模塊入口文件
├── core.go                       # 主模塊代碼
├── dzhgo/                        # 子模塊目錄
│   ├── go.mod                    # 子模塊:module github.com/gzdzh-cn/dzhcore/dzhgo
│   ├── main.go                   # 子模塊入口文件
│   ├── cmd/                      # 子模塊命令目錄
│   │   ├── root.go
│   │   └── ...
│   └── version/                  # 版本信息
│       └── version.go
└── README.md

模塊配置

1. 主模塊 go.mod

module github.com/gzdzh-cn/dzhcorego 1.24.5require (github.com/gogf/gf/v2 v2.9.0// ... 其他依賴
)

2. 子模塊 go.mod

module github.com/gzdzh-cn/dzhcore/dzhgogo 1.24.5require github.com/gogf/gf/v2 v2.9.0
// ... 其他依賴

標簽管理策略

主倉庫標簽

  • 格式v1.3.3
  • 用途:標識主模塊 github.com/gzdzh-cn/dzhcore 的版本
  • 安裝命令go install github.com/gzdzh-cn/dzhcore@v1.3.3

子模塊標簽

  • 格式dzhgo/v1.3.3
  • 用途:標識子模塊 github.com/gzdzh-cn/dzhcore/dzhgo 的版本
  • 安裝命令go install github.com/gzdzh-cn/dzhcore/dzhgo@v1.3.3

操作步驟

1. 準備工作

# 確保在主倉庫根目錄
cd /path/to/dzhcore# 檢查當前狀態
git status
git remote -v

2. 創建主倉庫標簽

# 確保所有更改已提交
git add .
git commit -m "準備發布 v1.3.3"# 推送最新代碼
git push github master# 創建主倉庫標簽
git tag v1.3.3# 推送標簽到遠程
git push github v1.3.3

3. 創建子模塊標簽

# 創建子模塊標簽(在主倉庫根目錄)
git tag dzhgo/v1.3.3# 推送子模塊標簽到遠程
git push github dzhgo/v1.3.3

4. 驗證標簽

# 查看所有標簽
git tag -l# 查看標簽詳情
git show v1.3.3
git show dzhgo/v1.3.3# 查看標簽指向的 commit
git log --oneline v1.3.3
git log --oneline dzhgo/v1.3.3

調試和驗證

1. 檢查模塊配置

# 檢查主模塊 go.mod
head -1 go.mod
# 應該輸出:module github.com/gzdzh-cn/dzhcore# 檢查子模塊 go.mod
head -1 dzhgo/go.mod
# 應該輸出:module github.com/gzdzh-cn/dzhcore/dzhgo

2. 驗證標簽指向的內容

# 檢查標簽指向的 commit 下,子模塊 go.mod 內容
git show v1.3.3:dzhgo/go.mod | head -1
git show dzhgo/v1.3.3:dzhgo/go.mod | head -1# 檢查子模塊目錄結構
git show v1.3.3:dzhgo/
git show dzhgo/v1.3.3:dzhgo/

3. 測試 Go Proxy 收錄

# 等待幾分鐘讓 Go Proxy 同步,然后測試# 使用官方 Go Proxy 測試主模塊
GOPROXY=https://proxy.golang.org go list -m -versions github.com/gzdzh-cn/dzhcore# 使用官方 Go Proxy 測試子模塊
GOPROXY=https://proxy.golang.org go list -m -versions github.com/gzdzh-cn/dzhcore/dzhgo# 使用國內 Go Proxy 測試
go list -m -versions github.com/gzdzh-cn/dzhcore
go list -m -versions github.com/gzdzh-cn/dzhcore/dzhgo

4. 測試安裝命令

# 創建測試目錄
mkdir /tmp/gotest
cd /tmp/gotest# 測試主模塊安裝
go mod init gotest
go get github.com/gzdzh-cn/dzhcore@v1.3.3# 測試子模塊安裝
go install github.com/gzdzh-cn/dzhcore/dzhgo@v1.3.3# 驗證安裝
dzhgo --version

5. 調試常見問題

# 如果子模塊查不到版本,檢查標簽格式
git tag | grep dzhgo# 如果安裝失敗,檢查模塊路徑
curl https://proxy.golang.org/github.com/gzdzh-cn/dzhcore/dzhgo/@v/list# 強制刷新 Go Proxy 緩存
GOPROXY=https://proxy.golang.org go get -x github.com/gzdzh-cn/dzhcore/dzhgo@v1.3.3

完整操作示例

# 1. 準備發布
cd /path/to/dzhcore
git add .
git commit -m "發布 v1.3.3 版本"
git push github master# 2. 創建標簽
git tag v1.3.3
git tag dzhgo/v1.3.3
git push github v1.3.3
git push github dzhgo/v1.3.3# 3. 驗證標簽
git tag -l
git show v1.3.3:dzhgo/go.mod | head -1
git show dzhgo/v1.3.3:dzhgo/go.mod | head -1# 4. 等待 Go Proxy 同步(5-10分鐘)
sleep 300# 5. 測試版本查詢
GOPROXY=https://proxy.golang.org go list -m -versions github.com/gzdzh-cn/dzhcore
GOPROXY=https://proxy.golang.org go list -m -versions github.com/gzdzh-cn/dzhcore/dzhgo# 6. 測試安裝
mkdir /tmp/gotest && cd /tmp/gotest
go mod init gotest
go install github.com/gzdzh-cn/dzhcore/dzhgo@v1.3.3
dzhgo --version

注意事項

  1. 標簽格式必須正確

    • 主模塊:v1.3.3
    • 子模塊:dzhgo/v1.3.3
  2. 模塊路徑必須正確

    • 主模塊:module github.com/gzdzh-cn/dzhcore
    • 子模塊:module github.com/gzdzh-cn/dzhcore/dzhgo
  3. Go Proxy 同步有延遲

    • 官方 proxy.golang.org 通常幾分鐘內同步
    • 國內 goproxy.cn 可能需要更長時間
  4. 倉庫必須是公開的

    • Go Proxy 只收錄公開倉庫的版本
  5. 測試時不要在本地模塊目錄

    • 不要在 dzhcore 或 dzhgo 目錄下測試 go get
    • 使用全新空目錄測試

參考文檔

  • Go Modules: Publishing multi-module repositories
  • Go Modules: Module version numbering

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/92916.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/92916.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/92916.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

IDEA 類上方注釋 簽名

File -->settings–>Editor–>File and Code Templates–>class新建 Class 類上方添加內容:/*** author Jagger* since ${DATE} ${TIME}*/

衛星通信終端天線對星之:參考星對星

我們在前面的文章中介紹了3種衛星通信終端的對星模式,分別是: 衛星通信終端天線的5種對星模式之一:信標跟蹤 衛星通信終端天線的5種對星模式之二:功率檢測型載波跟蹤 衛星通信終端天線的5種對星模式之二:DVB跟蹤 今…

來自麻省理工和AI制藥公司 Recursion 的結構與結合親和力預測模型Boltz-2,解決小分子藥物發現的關鍵問題

1. Boltz-2介紹 文章來源:http://jeremywohlwend.com/assets/boltz2.pdf 開源代碼來源:https://github.com/jwohlwend/boltz 該AI模型由麻省理工學院計算機科學與人工智能實驗室與上市AI制藥公司Recursion一起開發,雙方在Boltz-1的基礎之上…

從零用java實現 小紅書 springboot vue uniapp(14) 集成阿里云短信驗證碼

從零用java實現 小紅書 springboot vue uniapp(14) 集成阿里云短信驗證碼 移動端演示 http://8.146.211.120:8081/#/ 管理端演示 http://8.146.211.120:8088/#/ 項目整體介紹及演示 前言 在現代應用中,手機號不僅是用戶的唯一標識&#xff0…

`<< EOF` 與 `<< ‘EOF‘` 與 `<< “EOF“`有無引號的區別多回答筆記250722

<< EOF 與 << EOF 與 << "EOF"有無引號的區別多回答筆記250722 實測 自測代碼: # 定義變量 hello"ni hao"# 無引號 tee << EOF # 無引號 ${hello} world \n $(date) # 無引號 EOF# 單引號 tee << EOF # 單…

點擊按鈕滾動到底功能vue的v-on:scroll運用

使用vue自帶的監聽滾動功能v-on:scroll&#xff0c;滾動條變化時&#xff0c;會調用方法 checkScrollStatus&#xff0c;如果滾動條在容器底部時&#xff0c;則隱藏按鈕&#xff0c;否則顯示按鈕&#xff0c;點擊按鈕能一鍵滾動到底部。<div class"chat-area" ref…

Linux下編譯SLEPc

本文記錄在Linux下編譯安裝SLEPc的流程。 一、下載代碼 git clone https://github.com/slepc/slepc.git cd ./slepc二、安裝依賴 2.1 安裝PETSc 參見: <Linux下編譯安裝PETSc> 2.2 安裝intel oneAPI sudo apt install intel-oneapi-base-toolkit sudo apt install i…

【無標題】qwen3-8b 強化學習訓練后的模型,可以接著 進行其他grpo 強化學習訓練 嗎

ser_count’, 0),)} {((‘valid_user_count’, 1),)} 44 0.0 88 [0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.0, 0.6, 0.0, 0.6, 0.0, 0.6] 55 100%|???{‘loss’: 0.0132, ‘grad_norm’: 0.07552657276391983, ‘learning_rate’: 2e-06, ‘num_tokens’: 2098…

IDC權威認可:瑞數信息雙項入選《中國大模型安全保護市場概覽》

近日&#xff0c;國際數據公司IDC正式發布了《中國大模型安全保護市場概覽&#xff0c;2025&#xff1a;全方位安全檢測與防護構建可信AI》報告。本次報告中IDC結合全球統一定義以及中國市場特色&#xff0c;將中國大模型安全保護市場劃分為7個細分領域&#xff0c;并通過對中國…

多智能體(Multi-agent)策略模式:思維鏈CoT和ReAct

參考&#xff1a;https://zhuanlan.zhihu.com/p/704523060 &#x1f3af; 一句話記住 CoT&#xff1a;像“考試時在草稿紙上寫完所有步驟&#xff0c;再抄答案”。ReAct&#xff1a;像“玩密室逃脫&#xff0c;每開一個箱子就去找下一個線索”。 用小學生能聽懂的話 兩個小故事…

ChatGPT指令大全:輸入需求=輸出完整方案

ChatGPT指令大全提供數百個精煉過的指令語句 (提示詞)&#xff0c;讓你充分發揮 ChatGPT 的強大功能 一、核心功能模塊分類 1. 求職與面試 簡歷優化 專業反饋&#xff1a;按面試官視角分析簡歷并提出改進建議量化數據&#xff1a;為經歷添加具體數字&#xff08;如提升效率30…

Java零基礎入門學習知識點2-JDK安裝配置+Maven

文章目錄版本提示參考視頻Maven環境準備一、安裝Java開發工具包&#xff08;JDK&#xff09;二、JDK環境配置三、下載Maven安裝包*四、Maven環境配置&#xff08;可省略&#xff09;*五、驗證安裝&#xff08;上一步沒做&#xff0c;這步無法驗證&#xff0c;可省&#xff09;六…

基于單片機智能衣柜/智能衣櫥設計

傳送門 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品題目速選一覽表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品題目功能速覽 概述 本設計實現了一種基于單片機的多功能智能衣柜&#xff0c;融合環境檢測、安全防護與用戶交互功能…

自動語音識別(ASR)技術詳解

語音識別&#xff08;Automatic Speech Recognition, ASR&#xff09;是人工智能和自然語言處理領域的重要技術&#xff0c;旨在將人類的語音信號轉換為對應的文本。近年來&#xff0c;深度學習的突破推動語音識別系統從實驗室走入日常生活&#xff0c;為智能助手、實時翻譯、醫…

【MySQL】MySQL 事務和鎖詳解

一、MySQL 事務 1.1 事務介紹 在 MySQL 中&#xff0c;事務&#xff08;Transaction&#xff09; 是一組不可分割的 SQL 操作序列&#xff0c;這些操作要么全部成功執行&#xff0c;要么全部失敗回滾&#xff0c;以此保證數據庫操作的完整性和一致性。 事務將數據庫從一種一致…

虛擬直線閾值告警人員計數算法暑期應用

智慧人員計數助力暑期&#xff1a;技術賦能安全管理的創新實踐一、背景&#xff1a;暑期人流激增下的安全管理挑戰暑期是旅游、商業、交通等場景的客流高峰期&#xff0c;人員密集區域易引發踩踏事故、管理混亂等安全隱患。傳統人工計數方式效率低、誤差大&#xff0c;難以滿足…

SQL164 2021年11月每天新用戶的次日留存率

SQL164 2021年11月每天新用戶的次日留存率 思路 ?找出新用戶?&#xff1a;確定每個用戶首次活躍的日期&#xff08;即新用戶&#xff09; 例如101用戶在11月1日首次出現 ?處理跨天活躍?&#xff1a;考慮用戶可能跨天活躍的情況&#xff08;in_time和out_time不在同一天&a…

基于單片機的數字電壓表設計

2 系統原理及基本框圖 如圖2.1所示&#xff0c;模擬電壓經過檔位切換到不同的分壓電路衰減后&#xff0c;經隔離干擾送到A/D轉換器進行A/D轉換&#xff0c;然后送到單片機中進行數據處理。處理后的數據送到LCD中顯示&#xff0c;同時通過串行通訊與上位機通信。圖2.1系統基本方…

[NLP]UPF基本語法及其在 native low power verification中的典型流程

UPF基本語法及其在 native low power verification中的典型流程 摘要:本文首先簡要介紹 UPF(Unified Power Format),然后解釋其在 native low power verification(原生低功耗驗證)中的典型流程。最后,我將使用50個具體例子來完整展示 UPF 的關鍵語法。這些例子基…

fish-speech 在50系列顯卡使用 --compile加速兼容

#環境說明 GPU: NVIDIA GeForce RTX 5080 Laptop GPU (sm_120) win11家庭版 24H2 #問題匯總 baize.exceptions.HTTPException: (500, "RuntimeError: ptxas failed with error code 4294967295: \\n\\n") 問題匯總 1 baize.exceptions.HTTPException: (500, "…