Skip to content

iiidevops-templates/spring-boot-gradle-hello

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java Spring Boot Gradle Project - Hello

確認您專案的 gradle 與 tomcat 的 jdk 版本

  1. 範本裡提供的 gradle 是 jdk8 的版本,tomcat是 jdk11的版本
  2. 請確認您的版本後,再請更新範本專案內的 Dockerfile 檔案。

如何增加Sonarqube掃描(用預設的QualiyGate)

app/build.gradle的檔案內plugins新增id "org.sonarqube" version "3.1.1"後pipeline即可運行Sonarqube掃描

  1. 確認您專案的 gradle 版本,並將它更新至專案的 Dockerfile
  2. 若欲使用SonarQube,則請將下列文字新增至 build.gradle 的檔案裡。
plugins {
	id 'org.springframework.boot' version '2.3.3.RELEASE'
	id 'io.spring.dependency-management' version '1.0.8.RELEASE'
	id 'java'
	id "org.sonarqube" version "3.1.1"
}

2.1 填入位置可參考下列圖示所示

若要設定其他額外的細節也可寫在app/build.gradle,例如排除特定資料夾(與程式碼無關的)、指定的QualityGate、Rule等等
相關可用額外參數說明可參考sonarscanner-for-gradle

如何關閉Sonarqube UnitTest

SonarScan內修改特定段落內新增-x test即可跳過unit Test,以下為跳過unit Test範例,跳過unit Test後則不會出現覆蓋率

echo '========== SonarQube(Gradle) =========='
cd app && chmod -R 777 .
./gradlew -Dsonar.host.url=http://sonarqube-server-service.default:9000\
    -Dsonar.projectKey=${CICD_GIT_REPO_NAME} -Dsonar.projectName=${CICD_GIT_REPO_NAME}\
	-Dsonar.projectVersion=${CICD_GIT_BRANCH}:${CICD_GIT_COMMIT}\
    -Dsonar.log.level=DEBUG -Dsonar.qualitygate.wait=true -Dsonar.qualitygate.timeout=600\
    -Dsonar.login=$SONAR_TOKEN -x test jacocoTestReport sonarqube

jacoco Coverage 參考說明

https://dzone.com/articles/reporting-code-coverage-using-maven-and-jacoco-plu https://blog.miniasp.com/post/2021/08/11/Spring-Boot-Maven-JaCoCo-Test-Coverage-Report-in-VSCode

專案資料夾與檔案格式說明

型態 名稱 說明 路徑
檔案 .rancher-pipeline.yml ⚠️ (不可更動)devops系統所需檔案 根目錄
檔案 README.md 本說明文件 根目錄
檔案 Dockerfile (可調整)devops k8s環境部署檔案 根目錄
檔案 SonarScan (可調整)整合SonarQube執行檔案 根目錄
資料夾 app 專案主要程式碼 根目錄
資料夾 iiidevops ⚠️ devops系統測試所需檔案 根目錄
檔案 app.env (可調整)提供實證環境之環境變數(env)定義檔 iiidevops
檔案 app.env.develop (可調整)提供特定分支(develop)實證環境之環境變數(env)定義檔 iiidevops
檔案 pipeline_settings.json ⚠️ (不可更動)devops系統測試所需檔案 iiidevops
資料夾 bin ⚠️ devops系統測試所需執行檔案 iiidevops
資料夾 postman ⚠️ devops系統整合postman測試所需執行檔案 iiidevops
檔案 postman_collection.json (可調整)devops newman部署測試檔案 iiidevops/postman
檔案 postman_environment.json (可調整)devops newman部署測試檔案 iiidevops/postman
資料夾 sideex ⚠️ devops系統測整合sideex試所需執行檔案 iiidevops
檔案 Global Variables.json (可調整)devops sideex部署測試檔案 iiidevops/sideex
檔案 sideex.json (可調整)devops sideex部署測試檔案 iiidevops/sideex

iiidevops

  • 專案內.rancher-pipeline.yml是 pipeline 的定義檔, 除非對 yml 與 rancher pipeline 的語法有足夠的了解, 否則建議不要隨意對內容進行更動, 有可能會造成 pipeline 無法正常運作
  • 目前範本是依照 tomcat 預設服務的定義 port:8080 設定服務 port 號,如果您的程式需要更改使用其他 port 號 , 請將 .rancher-pipeline.yml 內所有 web.port: 所定義的 8080 改成您實際需要的 port 號。
  • iiidevops資料夾
    • postman資料夾內是devops整合API測試工具(postman)的自動測試檔案放置目錄,devops系統會以postman資料夾內 postman_collection.json 的檔案內容進行自動測試
    • sideex資料夾內則是devops整合Web測試工具(sideex)的自動測試檔案放置目錄,devops系統會以sideex資料夾內 sideex 匯出的 json 檔案內容進行自動測試
  • Dockerfile內加上前置dockerhub,是為使image能透過本地端harbor擔任Image Proxy的方式抓取Docker Hub上的Images,增加不同專案抓取相同 Image 的效率