gitLab創建自己的私有庫

来源:https://www.cnblogs.com/jingxin1992/archive/2018/05/10/9022301.html
-Advertisement-
Play Games

一.創建私有庫的流程簡介 創建一個項目,留著後面的流程3製作私有庫 在可以創建私有庫的地方創建一個code repository, code repository是代碼倉庫,我們把代碼上傳到這個倉庫。 在可以創建私有庫的地方創建一個spec repository, spec repository是配 ...


一.創建私有庫的流程簡介

  • 創建一個項目,留著後面的流程3製作私有庫
  • 在可以創建私有庫的地方創建一個code repository, code repository是代碼倉庫,我們把代碼上傳到這個倉庫。
  • 在可以創建私有庫的地方創建一個spec repository, spec repository是配置倉庫,所有的配置按照包名、版本號分門別類的存放在這個倉庫。這個倉庫只用來存放podspec文件,不存放代碼。 
  • 克隆code repository到本地並添加私有庫代碼文件,上傳所有文件到遠端的庫中並打tag 
  • 創建並編輯三個私有庫配置文件:創建和編輯README.md、創建和編輯LICENSE、創建和編輯podspec文件(驗證podspec文件是否正確,如果有問題要確保更改完成,否則無法繼續進行 )
  • 創建本地的私有倉庫文件 
  • 將配置文件push到遠端專門存儲配置文件的倉庫中 
  • 確認已經製作完成並使用

二.創建的詳細流程

1.創建一個項目,留著後面的流程3製作私有庫

  1)在這裡我們選擇用Cocoa Touch Static Library創建一個新的工程,取名為JXTool 

           

  2)刪除掉預設的.h和.m文件,加入自己已經準備好的工具類,最後主要就是用這個工具類去製作的私有庫,這裡簡便起見就只是執行列印了

#import <Foundation/Foundation.h>

@interface logTest : NSObject
- (void)test;
@end
#import "logTest.h"

@implementation logTest
- (void)test {
    NSLog(@"test111111");
}
@end

  

2.在可以創建私有庫的地方創建一個code repository(代碼倉庫), 一個spec repository(配置倉庫)

  這裡我使用的是gitlab,除了gitlab之外還可以使用github(私有需要收費) 、開源中國、CODING、Bitbucket、CSDN code都可以,但這裡使用gitlab來介紹所有的操作 

  1)點擊右上角的加號按鈕,創建代碼倉庫名為JXCodeRep

       

  2)同上面方法,創建配置倉庫名為JXSpecRep,所以此時除了名字不同外,其他都一樣 .所以這裡建議使用不同的倉庫名字來區別這兩個不同作用的倉庫

       

3.克隆code repository到本地並添加步驟1中的私有庫代碼文件,上傳所有文件到遠端的庫中並打tag

  1)打開git管理工具SourceTree,點擊新建按鈕,選擇從URL克隆選項,將上面的遠程代碼倉庫地址複製進去,選擇好自己的目標路徑和名稱後點擊克隆 

  

  2)這時候第一次克隆下來的文件夾是沒有東西的(這裡不算隱藏文件)

  

  因此別忘了按照gitLab官網進行下麵操作,打開終端,在預設的路徑下就行

  

  3)拉取遠程代碼倉庫,將我們之前步驟1中建立好的整個項目全部拖進這個文件夾替換README.md

             

  4)進入SourceTree,點擊文件狀態,將所有的改動全選後提交,再推送到git伺服器.將你需要某次修改打上一個tag 1.0,作為一個庫的修改版本.註意::別忘了,勾選上"推送標簽",這個非常重要

      

4.創建並編輯三個私有庫配置文件

  1)創建和編輯README.md、創建和編輯LICENSE(我在這裡就不創建這兩文件了,只是簡單說下創建方法)

  這個文件在github中也有,是項目的說明文件,根據自己的項目做一些說明.打開終端,cd到工具類文件所在的路徑下

  

  2)創建和編輯.podspec文件(這步最容易出錯)

  打開終端輸入

cd ~/

  為了後續私有庫的維護,建議名字和工具類所在項目名一樣,進入到根目錄後創建一個名字叫JXTool.podspec的文件

pod spec create JXTool

 

  

  準備通過vim進行編輯

vim JXTool.podspec

  先別按下 i進入編輯模式,清空全部內容

:%d

  內容清空後點擊i 進入編輯模式,輸入以下內容

Pod::Spec.new do |s|
  s.name         = "JXTool"
  s.version      = "1.0" #當前版本
  s.summary      = "JXTool a hello " #描述
  s.homepage     = "http://git.op.xywy.com/liunian/JXCodeRep.git" #庫文件主頁地>址
  s.license      = 'MIT'
  s.author       = { 'liunian' => '[email protected]' }  #開發者
  s.source       = { :git => '[email protected]:liunian/JXCodeRep.git', :tag => '1.0' } #文件的git地址,以及當前版本對應的tag,這個1.0就是我剛剛標註的
s.source_files = 'JXTool/JXTool/*' #文件所在的目錄,後面*是一個正則表達式,目錄我下麵會有解釋
 # s.source_files = 'JXTool/JXTool/*.{h,m}' #文件所在的目錄,後面*.{h.m}是一個正則表達式,目錄我下麵會有解釋
 # s.resources    = 'JXTool/JXTool/*.xib' #資源文件所在的目錄圖片,xib等,這個demo沒有用到
  s.framework    = 'UIKit' #當前這個庫所依賴的系統的庫
  s.platform     = :ios
  s.requires_arc = true #是否支持arc
end

  退出編輯esc,保存

:wq

  3)進入終端後驗證.podspec文件是否有效

pod spec lint JXTool.podspec --allow-warnings

  有passed validating則表示spec文件驗證通過了

   

5.創建'本地的私有倉庫'文件 

1)使用下麵的命令就可以在本地生成配置文件的倉庫,建議這個本地的名字也和遠程的一致,這樣便於區分和後期的維護.
JXSpecRep 是你遠端創建的配置文件倉庫的名字,後面是配置文件倉庫遠端的地址 .
註意此時不需要cd進入任何目錄,從預設位置輸入這個命令,即在點擊終端快捷方式打開的狀態下直接輸入下麵的命令即可

pod repo add JXSpecRep http://git.op.xywy.com/liunian/JXSpecRep.git

2)查看是否添加成功

pod repo list

  如果出現了JXSpecRep,則代表添加成功

  

   或者返回桌面command+shift+G查詢本地配置倉庫管理文件夾

~/.cocoapods/repos

   

6.將配置文件push到遠端專門存儲配置文件的倉庫中 

1)將配置文件push到遠端專門存儲配置文件的倉庫中 ,本地的也會同步更新
此時需要cd進入本地的.podspec所在的路徑,預設是根目錄,否則會找不到podspec文件
使用下麵的命令即可,有問題可以參考報錯信息去修改
JXSpecRep 是你創建的spec repository的名字,後面是你本地創建的.podspec文件

pod repo push JXSpecRep JXTool.podspec --allow-warnings

  2)出現下麵信息,則代表成功

  

  或者查詢本地私有spec管理文件夾,看到了JXTool則代表成功

open ~/.cocoapods/repos

    

  3)可以在遠端倉庫中看到這個文件,並且遠端配置文件倉庫中有且只有這一個文件 

  

7.確認已經製作完成並使用 

  1)查詢是否有我們需要的私有庫 

pod search JXTool

  

  2)新建一個項目後,初始化pod

pod init

  編輯Podfile文件

vim Podfile

  在合適的地方pod我們的私有庫  

source 'http://git.op.xywy.com/liunian/JXSpecRep.git'
pod 'JXTool', '1.0'

  cd到項目的路徑下

pod install

  

  3)導入頭文件,使用工具類

  

  大功告成!

三.補充

  下麵主要講述在同一臺筆記本操作,也就是還保留著之前所有相關本地的文件

  1.更新私有庫

1)參照上面步驟3將私有庫克隆下來,然後進行工具類代碼的修改,重新提交到遠程倉庫,並設置標簽,例如2.0,即再執行一遍步驟3的1)和4)

  修改的地方

#import "logTest.h"

@implementation logTest
- (void)test {
    NSLog(@"test222222");
}
@end

2)編輯.podspec文件,我這裡是同一臺筆記本還有原先的文件,所以不用再次創建了,直接編輯

vim JXTool.podspec

修改下麵的信息,即所有1.0的地方都修改成最新的標簽2.0

Pod::Spec.new do |s|
  s.name         = "JXTool"
  s.version      = "2.0" #當前版本
  s.summary      = "JXTool a hello " #描述
  s.homepage     = "http://git.op.xywy.com/liunian/JXCodeRep.git" #庫文件主頁地>址
  s.license      = 'MIT'
  s.author       = { 'liunian' => '[email protected]' }  #開發者
  s.source       = { :git => '[email protected]:liunian/JXCodeRep.git', :tag => '2.0' } #文件的git地址,以及當前版本對應的tag,這個1.0就是我剛剛標註的
s.source_files = 'JXTool/JXTool/*' #文件所在的目錄,後面*是一個正則表達式,目錄我下麵會有解釋
 # s.source_files = 'JXTool/JXTool/*.{h,m}' #文件所在的目錄,後面*.{h.m}是一個正則表達式,目錄我下麵會有解釋
 # s.resources    = 'JXTool/JXTool/*.xib' #資源文件所在的目錄圖片,xib等,這個demo沒有用到
  s.framework    = 'UIKit' #當前這個庫所依賴的系統的庫
  s.platform     = :ios
  s.requires_arc = true #是否支持arc
end

  後面的步驟依然和之前的一樣,參照上面的步驟,參照上面的步驟4.3)

   

  見到JXTool (2.0)極為成功

  3)將配置文件push到遠端專門存儲配置文件的倉庫中,參照上面的步驟6

    

見到上面的則為成功

4)確認已經製作完成並使用

編輯原先測試demo的Podfile文件,pod update之後運行看結果

終於大功告成!!!!

 

  由於我是第一次去主動在gitlab上創建私有庫,查了很多資料都不是很詳細,看了也是迷糊的很,所以特別抽空研究了一番,結合幾篇別人的文章,自動親手實踐,最後整理成這篇筆記,可能對於熟悉創建私有庫的人來說廢話很多,很冗餘,但是真心希望能幫助和我一樣的新手,一起學習。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • SELECT a.index_id , b.name , a.avg_fragmentation_in_percent FROM sys.dm_db_index_physical_stats(DB_ID(), OBJECT_ID(''), NULL, NULL, NULL) as a JOIN sy ...
  • use master alter database mfv408_Tift1 add log file ( name=mfv408_Tift1_log,filename='C:\_DISK\data1\mfv408_Tift1_log2.ldf', SIZE = 1024MB, MAXSIZE = ...
  • https://msdn.microsoft.com/zh-cn/library/ms189822(v=sql.120).aspx Microsoft SQL Server 將保留關鍵字用於定義、操作和訪問資料庫。 保留關鍵字是 SQL Server 使用的 Transact-SQL 語言語法的一部 ...
  • 缺點:後期升級不方便,生產中建議RPM包方式安裝 CentOS7預設安裝了和MySQL有相容性的MariaDB資料庫,在我們安裝MySQL5.7之前為了避免發生衝突首先刪除MariaDB。 一、基於官方源碼包安裝 下載 mysql-5.7.22.tar.gz 安裝cmake # yum -y ins ...
  • 學習目標 確定是否需要執行恢復 訪問不同的界面(如Enterprise Manager和命令行) 描述並使用可用的方案,如Recovery Manager(RMAN)和數據恢復指導 對以下文件執行恢復 -控制文件 -重做日誌文件 -數據文件 打開資料庫 要打開資料庫,必須滿足以下條件 -所有控制文件 ...
  • NoHttp的Cookie管理原理 在文檔的初始化配置一章講了NoHttp如何配置或者禁用cookie自動管理。 NoHttp的Cookie自動維護,嚴格遵守Http協議,即區分臨時Cookie和有效期Cookie。 臨時Cookie在本次App運行期內一直有效,直到App被殺死即被清除。 有效期C ...
  • 新手博友,多多關照 下麵給大家介紹JDK Eclipse AndroidSDK ADT環境搭建,安裝教程 第一步、安裝JDK; 第二步、安裝Eclipse; 第三步、下載並安裝AndroidSDK; 第四步、為Eclipse安裝ADT插件 第一步,安裝JDK 首先複製鏈接(http://www.or ...
  • 內容來自:https://www.cnblogs.com/mnstar/p/6281886.html ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...