本教程向你展現如何使用Jenkins編排使用Maven構建簡單的Java應用程序。java
若是你是使用Maven且不熟悉CI/CD概念的Java開發人員,或者你可能熟悉這些概念但不知道如何使用Jenkins實現構建應用程序,那麼本教程適合你。git
簡單的Java應用程序(你將從GitHub上的示例存儲庫獲取)輸出字符串「Hello world!」並附帶一些單元測試,以檢查主應用程序是否按預期工做,這些測試的結果將保存到JUnit XML報告中。github
持續時間:本教程須要20-40分鐘才能完成(假設你已經知足如下的前提條件),具體的持續時間取決於你的機器的速度以及你是否已經從另外一個教程中運行了Docker中的Jenkins。docker
你能夠隨時中止本教程,並從上次中止的地方繼續。apache
若是你已經運行了另外一個教程,則能夠跳過下面的前提條件和在Docker中運行Jenkins部分,而後繼續分析示例存儲庫(確保你在本地安裝了Git),若是你須要從新啓動Jenkins,只需按照中止並從新啓動Jenkins中的重啓說明操做,而後繼續。segmentfault
對於本教程,你將須要:瀏覽器
macOS、Linux或Windows機器:bash
安裝瞭如下軟件:app
在本教程中,你將從jenkinsci/blueocean Docker鏡像中將Jenkins做爲Docker容器運行。maven
要在Docker中運行Jenkins,請遵循下面針對macOS和Linux或Windows的相關說明。
你能夠在安裝Jenkins頁面的Docker和在Docker中下載並運行Jenkins部分閱讀有關Docker容器和鏡像概念的更多信息。
使用如下docker run命令將jenkinsci/blueocean
鏡像做爲Docker中的容器運行(請記住,若是還沒有執行此操做,此命令會自動下載鏡像):
docker run \ --rm \ -u root \ -p 8080:8080 \ -v jenkins-data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ -v "$HOME":/home \ jenkinsci/blueocean
/var/jenkins_home
目錄映射到名爲jenkins-data
的Docker卷,若是此卷不存在,則此docker run
命令將自動爲你建立卷。$HOME
目錄(一般是/Users/<your-username>
目錄)映射到容器中的/home
目錄。使用如下docker run命令將jenkinsci/blueocean
鏡像做爲Docker中的容器運行(請記住,若是還沒有執行此操做,此命令會自動下載鏡像):
docker run ^ --rm ^ -u root ^ -p 8080:8080 ^ -v jenkins-data:/var/jenkins_home ^ -v /var/run/docker.sock:/var/run/docker.sock ^ -v "%HOMEPATH%":/home ^ jenkinsci/blueocean
有關這些選項的說明,請參閱上面的macOS和Linux說明。
若是你有使用Docker的經驗,並但願或須要使用docker exec命令經過終端/命令提示符訪問Jenkins/Blue Ocean Docker容器,你能夠添加一個選項,如--name jenkins-tutorials
(上面docker run命令),這將爲Jenkins/Blue Ocean Docker容器命名爲「jenkins-tutorials」。
這意味着你可使用docker exec
命令訪問Jenkins/Blue Ocean容器(經過單獨的終端/命令提示符窗口),例如:
docker exec -it jenkins-tutorials bash
在你訪問Jenkins以前,你須要執行一些快速的「一次性」步驟。
首次訪問新的Jenkins實例時,系統會要求你使用自動生成的密碼將其解鎖。
http://localhost:8080
並等待,直到出現解鎖Jenkins頁面。管理員密碼
字段中,而後單擊繼續。解鎖Jenkins後,將出現自定義Jenkins頁面。
在此頁面上,單擊安裝推薦的插件。
安裝嚮導顯示正在配置的Jenkins的進度以及正在安裝的建議插件,此過程可能須要幾分鐘時間。
最後,Jenkins要求你建立第一個管理員用戶。
當Jenkins已就緒!頁面出現時,單擊開始使用Jenkins。
在本教程的其他部分中,你能夠經過在上面的運行docker run ...
命令的終端/命令提示符窗口中鍵入Ctrl-C
來中止Jenkins/Blue Ocean Docker容器。
要從新啓動Jenkins/Blue Ocean Docker容器:
docker run ...
命令。注意:若是有更新的鏡像,此過程還會更新jenkinsci/blueocean Docker鏡像。http://localhost:8080
。從GitHub獲取簡單的「Hello world!」Java應用程序,經過將應用程序源代碼的示例存儲庫fork到你本身的GitHub賬戶,而後克隆此fork到本地。
simple-java-maven-app
項目fork到你本地的GitHub賬戶,若是你須要有關此過程的幫助,請參閱GitHub網站上的Fork A Repo文檔以獲取更多信息。克隆你fork的simple-java-maven-app
存儲庫(在GitHub上)本地到你的計算機上,要開始此過程,請執行如下任一操做(其中<your-username>
是你的操做系統上的用戶賬戶的名稱):
若是你的計算機上安裝了GitHub Desktop應用程序:
在GitHub Desktop中,在Clone a Repository對話框中單擊Clone以前,請確保本地路徑爲:
/Users/<your-username>/Documents/GitHub/simple-java-maven-app
/home/<your-username>/GitHub/simple-java-maven-app
C:\Users\<your-username>\Documents\GitHub\simple-java-maven-app
不然:
打開終端/命令行提示符並cd
到相應的目錄:
/Users/<your-username>/Documents/GitHub/
/home/<your-username>/GitHub/
C:\Users\<your-username>\Documents\GitHub\
(即便使用Git bash命令行窗口而不是一般的Microsoft命令提示符)git clone https://github.com/YOUR-GITHUB-ACCOUNT-NAME/simple-java-maven-app
其中YOUR-GITHUB-ACCOUNT-NAME
是你的GitHub賬戶的名稱。simple-java-maven-app
)。在Repository URL字段中,指定上面本地克隆的存儲庫的目錄路徑,該路徑來自主機上的用戶賬戶/主目錄,映射到Jenkins容器的/home
目錄 - 即
/home/Documents/GitHub/simple-java-maven-app
/home/GitHub/simple-java-maven-app
/home/Documents/GitHub/simple-java-maven-app
Jenkinsfile
了,你將把它檢入本地克隆的Git存儲庫。