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 :
他們擁有的權限可以自定義,管理員可根據需要配置不同團隊成員的權限: