Github團隊開發示例(一)
作者:Grey
原文地址:http://www.cnblogs.com/greyzeng/p/6044837.html
我們可以在Github上管理自己的團隊專案。團隊成員通過Github進行協同工作,也方便管理,接下來我提供一種Github團隊建立倉庫的目錄格式,並對每個目錄進行必要說明,最後根據這個目錄結構寫了一個簡單的例子。
團隊倉庫目錄結構
- TestOrgName
- xxxsystem
- configs
- dbscripts
- docs
- src
- xxxsystem
下面一一說一下這些目錄的作用:
TestOrgName
團隊/組織名,可以自定義,最好用英文。
xxxsystem
團隊要做的專案名稱,可以自定義,最好用英文。
configs
在開發的時候,專案是部署在開發環境中的,所以專案中的一些配置檔案,比如:資料庫連線配置檔案,都是用的開發環境的資料庫連線配置,專案要部署上線的時候,我們需要把開發環境的資料庫連線配置替換成生產環境的資料庫連線配置,所以這個目錄可以用來存生產環境的相關配置檔案。
之所以將測試環境/開發環境/生產環境分開是因為開發過程中,需要對資料庫中的一些資料進行測試或者修改,如果不和生產環境分開,會“汙染”生產環境的資料。
dbscripts
在開發過程中,每次開發過程中涉及到要執行一些指令碼,比如:開發過程中,要新建一個表,建表語句就要儲存在這個目錄裡面,待開發完畢上線的時候,就需要在生產環境中執行這個建表語句。
docs
這裡存放專案的相關文件,比如:需求說明書,會議紀要,上線手冊等。
src
這裡存放專案原始碼。
一個例子
我們通過這個簡單的例子來說明如何配置相關目錄中的資訊。
團隊基本資訊
- 團隊名稱:PhoenixGoGo
- 團隊要做的專案名稱:helloworld
在Github中新建團隊
新建organization
輸入Organization Name等相關資訊,並點選Create organization
邀請成員,這步我們先略過,點選Finish
此時,我們就把團隊倉庫新建完畢。
在團隊倉庫中新建專案
點選Create a new repository
輸入專案相關資訊, 並點選Create repository
此時,我們就把專案建好了。
初始化相關目錄
先將專案clone至本地:
git clone https://github.com/PhoenixGoGo/helloworld.git
進入專案目錄,並新建以下資料夾:
專案需求
我們要將控制檯輸入的文字寫入到C盤根目錄中的
file_product
資料夾中的ds.txt
檔案中。
配置和初始化
為了不影響生產環境
file_product
資料夾中的ds.txt
檔案, 我們考慮在C盤根目錄中新建一個file_develop
的資料夾,並在這個資料夾裡面ds.txt
檔案,我們平時在開發的時候,就讀取file_develop
中的ds.txt
檔案,等我們開發完畢測試通過以後,我們可以把相關的目錄改為file_product
。
為了說明問題,我通過指令碼來新建相關目錄,以Windows為例,
- 新建一個名為
init_ds.bat
檔案, - 用記事本開啟這個檔案寫入以下內容並儲存:
@echo off
md "C:\file_develop"
C:
cd "C:\file_develop"
cd.>ds.txt
雙擊這個bat檔案,可以在C盤下生成了相關目錄和檔案。同時,我們把init_ds.bat
檔案放到helloworld/dbscripts
資料夾下面。
因為以後釋出專案的時候要切換目錄,所以,我們不能把要讀取的目錄寫死在程式碼裡面,我們可以將目錄路徑寫在配置檔案裡面,通過讀取配置檔案來獲得目錄的路徑,這樣我們在部署的時候只需要用生產環境的配置檔案覆蓋開發環境的配置檔案即可。
我們可以新建兩個配置檔案,一個用於開發環境,一個用於生產環境。
我們先新建一個開發環境中需要的配置檔案:
- 新建一個名為
config.properties
的配置檔案, - 用記事本開啟這個檔案寫入以下內容並儲存:
# test environment
file.name=C:/file_develop/ds.txt
再新建一個生產環境中需要的配置檔案:
- 新建一個名為
config.properties
的配置檔案, - 用記事本開啟這個檔案寫入以下內容並儲存:
# product environment
file.name=C:/file_product/ds.txt
我們把這個用於生產的配置檔案放在helloworld/configs
下面。
專案原始碼(部分)
為了方便,這裡對程式碼沒有做優化和檢查。完整原始碼
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
import java.util.Scanner;
public class App {
private static Scanner scanner;
public static void main(String[] args) {
Properties prop = new Properties();
try {
prop.load(new FileInputStream("config/config.properties"));
scanner = new Scanner(System.in);
String line = null;
System.out.print("please input:");
while (!"exit".equals(line = scanner.nextLine())) {
System.out.println("input context = " + line);
System.out.print("please input: ");
File writename = new File(prop.getProperty("file.name"));
writename.createNewFile();
BufferedWriter out = new BufferedWriter(new FileWriter(writename));
out.write(line);
out.flush();
out.close();
}
System.out.println("The program will exit");
} catch (IOException e) {
e.printStackTrace();
}
}
}
我們將原始碼放入helloworld/src
目錄下。
我們將helloworld
push到遠端倉庫:
控制檯下分別執行以下命令:
cd helloworld
git add *
git commit -m "if applied, this commit will init project"
git push -u origin master
此時,專案的結構是這樣的:
相關文件
專案組經常會有新來的成員 ,他們如何在沒有老成員帶的情況下,通過文件就可以在一臺全新的機器上部署專案呢?
這時候我們就需要一個文件,來說明專案如何部署執行,下面是這個helloword
專案的部署文件,僅供參考:
開發環境
安裝
相關配置
開啟Eclipse,設定編碼格式UTF-8
:
Window->Preferences->General->Workspace->Text file encoding->UTF-8
在Eclipse中開啟:
Window->Show View->Other...->找到Git Repositories並雙擊
Window->Show View->Other...->找到Git Staging並雙擊
配置Maven到Eclipse中:
Window->Preferences->Maven->Installations->Add...->選擇前面安裝的Maven的目錄
點選Finish。
匯入倉庫
在Git Repositories
下點選clone git repository
輸入URI以及Github使用者名稱和密碼
點選finsh
匯入專案
在控制檯下,我們進入原始碼的目錄執行:
mvn eclipse:eclipse
在src
目錄下右鍵,選擇Import Projects
:
選擇import existing Eclipse Projects
:
專案匯入完成
執行專案
選擇App.java
右鍵-> Run As->Java Application
以上為helloworld
這個專案的開發部署文件, 我們可以將其儲存為:develop_guide.md
檔案,
並且放到hellworld/docs
目錄下
最後,把docs目錄也提交到團隊倉庫中去。
增加團隊成員
團隊倉庫初始化好以後,我們可以增加團隊成員進行協作開發:
點選Invite member
輸入你的團隊成員的Github賬戶即可對相應的成員發出邀請,接收到邀請的成員要進Github註冊郵箱進行確認方可加入:
這裡包含兩類人:Member/Owner :
他們擁有的許可權可以自定義,管理員可根據需要配置不同團隊成員的許可權: