十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
拉取遠(yuǎn)程倉(cāng)庫(kù):$ git pull [remoteName] [localBranchName]

創(chuàng)新互聯(lián)建站專注于企業(yè)全網(wǎng)整合營(yíng)銷推廣、網(wǎng)站重做改版、勐海網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁(yè)面制作、成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為勐海等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
git pull:從其他的版本庫(kù)(既可以是遠(yuǎn)程的也可以是本地的)將代碼更新到本地,例如:'git pull origin master'就是將origin這個(gè)版本庫(kù)的代碼更新到本地的master主枝,該功能類似于SVN的update
1.在本地新建一個(gè)文件夾,用來(lái)存放要拉的代碼,
2.從git復(fù)制代碼的git地址
3.在git bash here中,進(jìn)到步驟1所建的文件目錄下
4.然后執(zhí)行pull代碼的命令,git?clone?-b?master?git@git.xxx點(diǎn)抗 :xxx/cloud_test.git 即可(-b后面是分支名,分支名后面是git地址)
一、使用Git拉取項(xiàng)目到本地
1、團(tuán)隊(duì)實(shí)際開(kāi)發(fā)Git概況
在實(shí)際開(kāi)發(fā)的項(xiàng)目中,一個(gè)項(xiàng)目會(huì)有 三種版本分支:master版本分支、dev版本分支、自定義版本分支
master版本分支: 正式運(yùn)行環(huán)境中的程序代碼,運(yùn)行環(huán)境會(huì)定期自動(dòng)或按計(jì)劃手動(dòng)從該master版本分支中獲取代碼并重新編譯和運(yùn)行,不允許隨意修改,一旦出錯(cuò)將對(duì)系統(tǒng)造成嚴(yán)重后果。所以開(kāi)發(fā)人員不會(huì)被項(xiàng)目管理員授予:在Master上創(chuàng)建分支、直接提交代碼到Master分支上、使用Master分支合并其他分支的權(quán)限。
dev版本分支: 測(cè)試環(huán)境中運(yùn)行的代碼,master版本分支會(huì)定期合并該dev版本版本分支的代碼,也不允許隨意修改,如果想要修改,必須先新建一個(gè)自定義版本分支,編寫(xiě)好代碼之后同步到云端倉(cāng)庫(kù),在云端使用Git向該項(xiàng)目的管理員發(fā)出合并請(qǐng)求(merge),項(xiàng)目管理員同意之后才能在dev分支中看到自己寫(xiě)好的代碼。所以開(kāi)發(fā)人員也不會(huì)被授予:直接提交代碼到dev分支、使用dev合并其他分支的權(quán)限;但是擁有在dev分支上新建自定義分支的權(quán)限。
自定義版本分支: 自己定義的版本分支,有兩種情況。
情況1: 一般情況下,開(kāi)發(fā)人員使用git clone命令、使用IDEA或GitHub Desktop等其他圖形化工具從云端復(fù)制項(xiàng)目到本地的是當(dāng)前時(shí)間的master版本,開(kāi)發(fā)人員需要在本地新建一個(gè)分支(可以命名為dev)關(guān)聯(lián)到云端的dev分支,再在本地dev分支上新建一個(gè)自定義版本分支。
情況2: 還有一種情況是先在云端的dev上新建一個(gè)自己的分支,再使用命令行自定義拉取信息,拉取剛才新建的分支到本地。
當(dāng)開(kāi)發(fā)人員在自定義分支上開(kāi)發(fā)完了自己的代碼之后,將當(dāng)前自定義版本分支同步到云端,這時(shí)候請(qǐng)求合并到dev分支,管理員或者被授權(quán)合并權(quán)限的人員就可以審核開(kāi)發(fā)人員的代碼并進(jìn)行合并了,如果測(cè)試不通過(guò)則不予合并,如果在合并之后出現(xiàn)問(wèn)題,則將dev分支回退到之前的版本。
2、Git拉取項(xiàng)目:就是復(fù)制項(xiàng)目到本地。
本文介紹使用IDEA從云端拉取項(xiàng)目,默認(rèn)拉取的是master分支的快照,相當(dāng)于在本地新建一個(gè)master分支,再把當(dāng)前master分支的代碼復(fù)制到本地master分支。
(1)新建項(xiàng)目,從版本控制系統(tǒng)拉取。
(2)從云端查看要被拉去的項(xiàng)目路徑,在IDEA中輸入項(xiàng)目路徑
在這里復(fù)制
在這里輸入
然后確認(rèn)即可
3、用IDEA打開(kāi)或者導(dǎo)入剛才的項(xiàng)目,項(xiàng)目為git-test
打開(kāi)或者導(dǎo)入都可以,以下是打開(kāi)
信任項(xiàng)目選擇信任
此時(shí)項(xiàng)目就已經(jīng)下載到本地并且作為一個(gè)項(xiàng)目文件存在了,但是還是不能直接運(yùn)行,因?yàn)榇笮晚?xiàng)目往往需要配置運(yùn)行環(huán)境。
二、本地運(yùn)行
克隆好的SpringBoot項(xiàng)目用IDEA打開(kāi)自動(dòng)會(huì)根據(jù)maven加載項(xiàng)目依賴,并配置啟動(dòng)類。
IDEA右上角菜單欄出現(xiàn)下圖所示的情況表示加載成功。
由于項(xiàng)目是團(tuán)隊(duì)開(kāi)發(fā),所以項(xiàng)目的src\main\resource目錄下會(huì)有對(duì)應(yīng)多個(gè)狀態(tài)的properties配置文件,如下圖:
application.properties、application-dev.properties、application-prod.properties分別對(duì)應(yīng)總體配置、測(cè)試開(kāi)發(fā)環(huán)境配置、運(yùn)行環(huán)境配置。需要這些配置的原因是:測(cè)試環(huán)境(dev)和生產(chǎn)環(huán)境(prod)的數(shù)據(jù)庫(kù)或者資源不一致,測(cè)試環(huán)境的數(shù)據(jù)庫(kù)是生產(chǎn)環(huán)境的一個(gè)副本,生產(chǎn)環(huán)境數(shù)據(jù)庫(kù)只允許增加和查看,修改和刪除需要嚴(yán)格控制。
由于我們當(dāng)前是在開(kāi)發(fā)環(huán)境之下,所以需要加載使用dev環(huán)境的配置。但是加載和使用dev環(huán)境的配置不能在代碼中設(shè)置,如果上線到運(yùn)行環(huán)境運(yùn)行到這部分代碼就會(huì)出錯(cuò),所以需要在運(yùn)行時(shí)設(shè)置VM Options參數(shù):-Dspring.profiles.active = dev,如下圖:
三、本地測(cè)試
正常情況下本地測(cè)試:
在Test同路徑下面創(chuàng)建測(cè)試類,并在類上添加注解@SpringBootTest;創(chuàng)建方法,并添加注解@Test
代碼如下:
@SpringBootTest
public class SpringBootFunctionTests {
@Autowired
UserService userService;
@Test
public void testMethod1() {
//方法體
}
}
登錄后復(fù)制
但是在某些情況下可能會(huì)報(bào)錯(cuò),尤其是在某個(gè)地方使用了@WebEnvironmentAutoConfig注解之后,可能需要重新指定測(cè)試類的運(yùn)行環(huán)境。
此時(shí)需要
(1)先檢查pom.xml,看是否配置了spring-boot-starter-test
(2)查看import,分別嘗試import org.junit.Test;和import org.junit.jupiter.api.Test;
(3)嘗試修改注解,如:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {OperationApplication.class})
@SpringBootTest
public class SpringBootFunctionTests {
@Autowired
UserService userService;
@Test
public void testMethod1() {
//方法體
}
}
登錄后復(fù)制
?
(4)如果此時(shí)還是出錯(cuò),并且是在未添加@RunWith(SpringRunner.class)注解出現(xiàn)NullPointer錯(cuò)誤,添加了次注解出現(xiàn)上下文環(huán)境無(wú)法加載錯(cuò)誤(ApplicationContext not found),說(shuō)明沒(méi)有指定測(cè)試類的運(yùn)行環(huán)境配置,就像上文指定開(kāi)發(fā)運(yùn)行環(huán)境配置一樣。
指定測(cè)試類的運(yùn)行環(huán)境配置
方法有三種:
(1)一種是給Junit添加VM Options:-Dspring.profiles.active = dev
添加Junit在此項(xiàng)目中的總體運(yùn)行配置,此時(shí)在每一次運(yùn)行Junit測(cè)試的時(shí)候,IDEA都會(huì)加上此運(yùn)行配置,一勞永逸。
(2)單個(gè)測(cè)試方法添加運(yùn)行配置
此時(shí)需要對(duì)每個(gè)測(cè)試方法都添加配置,比較麻煩。
(3)在每個(gè)測(cè)試類上添加@ActiveProfiles(“dev”)指定運(yùn)行環(huán)境,并添加@RunWith(SpringRunner.class)
代碼如下:
@RunWith(SpringRunner.class)
@ActiveProfiles("dev")
@SpringBootTest
public class SpringBootFunctionTests {
@Autowired
UserService userService;
@Test
public void testMethod1() {
//方法體
}
}
登錄后復(fù)制
也需要對(duì)每個(gè)測(cè)試類都添加這兩個(gè)注解。