[代碼上線]-maven


第1章 准備Maven環境

注意:下列操作都是在jenkins主機部署

1.安裝maven

tar zxf apache-maven-3.3.9-bin.tar.gz -C /opt/
cd /opt/
ln -s apache-maven-3.3.9 maven

2.設置maven國內源

在mirror標簽下添加mirror區塊

vim /opt/maven/conf/settings.xml 
    <mirror>
      <id>nexus-aliyun</id>
      <mirrorOf>*</mirrorOf>
      <name>Nexus aliyun</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>

3.配置環境變量

echo 'export PATH=$PATH:/opt/maven/bin' >> /etc/profile
source /etc/profile
mvn -v

4.使用mvn打包測試項目

tar zxf hello-world-war.tar.gz 
cd hello-world-war/
mvn package

5.檢查是否生成war包

ll target

第2章 上傳代碼到gitlab

以下操作在gitlab服務器進行:

1.在gitlab中創建項目

2.在gitlab主機提交測試項目

tar zxf hello-world-war.tar.gz 
cd hello-world-war/
git remote remove origin
git init
git remote add origin git@10.0.0.200:dev/java-helloworld.git
git add .
git commit -m "Install commit"
git push -u origin master

3.gitlab上查看項目

第3章 Jenkins配置Maven項目

1.配置Maven目錄

進入Jenkins的系統管理-->全局工具配置頁面-->Maven安裝

2.新建Maven項目

3.gitlab項目里激活部署公鑰

3.配置項目的gitlab地址

4.設置打包命令

5.測試構建是否成功

點擊立即構建,然后查看jenkins的工作目錄下是否成功生成了war包

[root@jenkins-201 ~]# ll /var/lib/jenkins/workspace/java-helloworld/target/
總用量 4
drwxr-xr-x 4 root root   54 8月   7 08:13 hello-world-war-1.0.0
-rw-r--r-- 1 root root 2403 8月   7 08:13 hello-world-war-1.0.0.war
drwxr-xr-x 2 root root   28 8月   7 08:13 maven-archiver
[root@jenkins-201 ~]# 

6.將war包發送給web服務器

cd /var/lib/jenkins/workspace/java-helloworld/target/
scp hello-world-war-1.0.0.war 10.0.0.7:/tmp/

第4章 安裝部署Tomcat

注意:以下操作在web服務器進行

1.安裝java環境

yum install java -y

2.安裝Tomcat

tar xf apache-tomcat-8.0.27.tar.gzls  -C /opt/
cd /opt
ln -s apache-tomcat-8.0.27 tomcat

2.拷貝測試項目並用tomcat啟動

rm -rf /opt/tomcat/webapps/*
cp /tmp/hello-world-war-1.0.0.war /opt/tomcat/webapps/ROOT.war
/opt/tomcat/bin/startup.sh

3.測試訪問

4.清理環境

測試完成后我們將war包刪掉,后續我們使用jenkins自動部署

rm -rf /opt/tomcat/webapps/ROOT.war 

第5章 Jenkins配置參數化構建

1.編寫發布腳本

cat > /scripts/jenkins/java_deploy.sh << 'EOF'     
#!/bin/bash

PATH_CODE=/var/lib/jenkins/workspace
PATH_WEB=/opt/tomcat/webapps
IP=10.0.0.7

#拷貝war包發送到web服務器代碼目錄
code_scp(){
        ssh ${IP} "mkdir ${PATH_WEB}/java-${git_version} -p"
        scp ${PATH_CODE}/java-helloworld/target/*.war ${IP}:${PATH_WEB}/java-${git_version}
}

#web服務器解壓代碼
code_unzip(){
        ssh ${IP} "cd ${PATH_WEB}/java-${git_version} && unzip *.war && rm -rf *.war"
}

#創建代碼軟鏈接
code_ln(){
        ssh ${IP} "cd ${PATH_WEB} && rm -rf ROOT && ln -s java-${git_version} ROOT"
}

#重啟tomcat
restart_tomcat(){
        ssh ${IP} "cd /opt/tomcat/bin && ./shutdown.sh && ./startup.sh"
}

main(){
        code_scp
        code_unzip
        code_ln
}

#選擇發布還是回滾
if [ "${deploy_env}" == "deploy" ]
then    
        ssh ${IP} "ls ${PATH_WEB}/java-${git_version}" >/dev/null 2>&1
        if [ $? == 0 -a ${GIT_COMMIT} == ${GIT_PREVIOUS_SUCCESSFUL_COMMIT} ]
        then
                echo "java-${git_version} 已部署,不允許重復構建"
                exit
        else 
                main
                restart_tomcat
        fi
elif [ "${deploy_env}" == "rollback" ]
then
        code_ln
        restart_tomcat
fi
EOF

2.配置參數化構建

最后還需要配置一下git倉庫地址,注意需要修改拉取的版本的變量為 $git_version

jenkins構建查看會發現已經有了選項,但是因為還沒提交代碼,所以版本號還沒有:

3.配置構建后操作

4.項目打標簽測試

刪除以前的標簽:

git tag
git tag -d v1.0 v2.0 v3.0 v4.0

發布v2.0版本

cd hello-world-war/src/main/webapp/
git checkout master
git pull 
git checkout -b v2.0
vim src/main/webapp/index.jsp 
git status
git add .
git commit -m "v2.0 穩定版"-
git push -u origin v2.0

發布v3.0版本

cd hello-world-war/src/main/webapp/
git checkout master
git pull 
git checkout -b v3.0
vim src/main/webapp/index.jsp 
git status
git add .
git commit -m "v3.0 穩定版"
git push -u origin v3.0

5.測試發版

發布v2.0版本:

web服務器查看:

目錄查看:

[root@web-7 ~]# ll /opt/tomcat/webapps/             
總用量 0
drwxr-xr-x 4 root root 54 8月   7 09:26 java-v2.0
lrwxrwxrwx 1 root root  9 8月   7 09:27 ROOT -> java-v2.0

測試發布v3.0版本:

瀏覽器查看:

代碼目錄查看

[root@web-7 ~]# ll /opt/tomcat/webapps/
總用量 0
drwxr-xr-x 4 root root 54 8月   7 09:26 java-v2.0
drwxr-xr-x 4 root root 54 8月   7 09:39 java-v3.0
lrwxrwxrwx 1 root root  9 8月   7 09:39 ROOT -> java-v3.0

6.測試回滾

當前版本為v3.0,我們選擇回滾到v2.0

web瀏覽器查看發現已經回滾成功了:

查看代碼目錄:

[root@web-7 ~]# ll /opt/tomcat/webapps/
總用量 0
drwxr-xr-x 4 root root 54 8月   7 09:26 java-v2.0
drwxr-xr-x 4 root root 54 8月   7 09:39 java-v3.0
lrwxrwxrwx 1 root root  9 8月   7 09:41 ROOT -> java-v2.0

第7章 sonar添加java項目

1.SonarQube添加新項目

2.創建新令牌

3.選擇java項目

4.將命令寫入sonar-scanner配置文件

cat > /opt/sonar-scanner/conf/sonar-scanner.properties <<'EOF'
sonar.host.url=http://10.0.0.203:9000 
sonar.login=a82e776ea9fe8efa91c53d041d969ee23d2a27d1
sonar.sourceEncoding=UTF-8
EOF

第8章 jenkins配置sonar

1.配置構建后步驟

參數命令:

sonar.projectName=${JOB_NAME} 
sonar.projectKey=java
sonar.sources=. 

2.提交新版本發版測試

cd hello-world-war/src/main/webapp/
git checkout master
git pull 
git checkout -b v4.0
vim src/main/webapp/index.jsp 
git status
git add .
git commit -m "v4.0 穩定版"-
git push -u origin v4.0

3.jenkins發版測試

4.檢查發版狀態

web服務狀態:

sonar狀態:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM