git jenkins 部署java项目

Posted oldsjf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git jenkins 部署java项目相关的知识,希望对你有一定的参考价值。

技术图片

1.Java项目部署基本概述:
  1.什么是Java项目?
  2.为什么Java项目需要使用Maven编译?
  3.手动实现Java项目构建?
  4.手动实现Java项目架构图?

源码包   jar包  war包
    1.JAVA源码包--编译--> war --编译的过程中需要依赖--> jar包
    2.JAVA源码包也可以编译生成 jar包  (需要被依赖才会启用   -->不能独立运行)
    3.有的jar可以独立运行   java -jar xx.jar

手动部署Java项目至Web集群:
  1.搭建nginx+Tomcat集群架构?

           1.负载均衡配置如下:
            [root@lb01 ~]# cat /etc/nginx/conf.d/proxy_java.oldxx.com.conf

               

upstream java {
        server 172.16.1.7:80;
        server 172.16.1.9:80;
    }

    server {
        listen 80;
        server_name java.oldxx.com;

        location / {
            proxy_pass http://java;
            proxy_set_header Host $http_host;
        }
    }

  2.web节点配置如下:
        0.安装JDK
        1.安装nginx
        2.安装tomcat
        3.配置nginx+tomcat环境:
            [root@web01 /soft]# yum install java -y
            [root@web01 /soft]# mkdir /soft && cd /soft
            [root@web01 /soft]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz
            [root@web01 /soft]# tar xf apache-tomcat-9.0.27.tar.gz
            [root@web01 /soft]# ln -s /soft/apache-tomcat-9.0.27 /soft/tomcat
            [root@web01 /soft]# /soft/tomcat/bin/startup.sh

            [root@web01 ~]# cat /etc/nginx/conf.d/java.oldxx.com.conf

server {
            listen 80;
            server_name java.oldxx.com;

            location / {
                proxy_pass http://127.0.0.1:8080;
            }
        }

2.开发提交Java源代码至gitlab仓库?     
    1.本地windows编写java代码
    2.准备gitlab一个仓库
    3.本地windows推送代码

3.手动获取Java源代码,然后使用maven进行编译?
     1.git clone 获取代码   

     2.使用maven进行编译     
        yum install java maven -y
        mvn clean package -Dmaven.test.skip=true

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

4.将编译后的war包部署至Tomcat集群?
    for i in 7 9 ;do scp target/hello-world-war-1.0.0.war  root@172.16.1.$i:/soft/tomcat/webapps/ROOT.war;done
    for i in 7 9 ;do ssh root@172.16.1.$i "pkill java && /soft/tomcat/bin/startup.sh";done

5.最后通过浏览器访问测试,检测项目是否部署OK?
  .自动部署Java项目至Web集群?
-------------------------------------------------------
  1.Jenkins安装Maven插件,使其支持Maven项目创建?
  2.Jenkins配置JDK路径以及Maven路径。
  3.Jenkins创建Maven项目,然后进行构建。
  4.编写自动上线脚本推送至web集群,最后通过浏览器访问?
  5.优化部署脚本,使其支持上线与回滚功能?
  6.项目相同版本可以重复构建,如何处理该问题?
java上线脚本参考:

#!/usr/bin/bash
# func: deploy auto html

WEB_SERVER="172.16.1.8 172.16.1.9"
WEB_DIR="/soft/tomcat/webapps"
DATE=$(date +%F-%H-%M)


#1.打包代码
tar_code() {
    cd ${WORKSPACE}
}

#2.推送代码
scp_push_code() {
    for host in $WEB_SERVER
    do
        scp target/*.war  root@$host:/opt/ROOT-${DATE}-${git_version}.war

        ssh root@$host "cd /opt/ && mkdir ROOT-${DATE}-${git_version} &&                 unzip ROOT-${DATE}-${git_version}.war -d ROOT-${DATE}-${git_version} &&                 rm -rf $WEB_DIR/ROOT &&                 ln -s /opt/ROOT-${DATE}-${git_version} $WEB_DIR/ROOT &&                 pkill java && /soft/tomcat/bin/startup.sh"
        done
}

#3.调用
deploy () {
    tar_code
    scp_push_code
}

    deploy
#!/usr/bin/bash
# func: deploy auto html

WEB_SERVER="172.16.1.8 172.16.1.9"
WEB_DIR="/soft/tomcat/webapps"
DATE=$(date +%F-%H-%M)


#1.打包代码
tar_code() {
    cd ${WORKSPACE}
}

#2.推送代码
scp_push_code() {
    for host in $WEB_SERVER
    do
        scp target/*.war  root@$host:/opt/ROOT-${DATE}-${git_version}.war

        ssh root@$host "cd /opt/ && mkdir ROOT-${DATE}-${git_version} &&                 unzip ROOT-${DATE}-${git_version}.war -d ROOT-${DATE}-${git_version} &&                 rm -rf $WEB_DIR/ROOT &&                 ln -s /opt/ROOT-${DATE}-${git_version} $WEB_DIR/ROOT &&                 pkill java && /soft/tomcat/bin/startup.sh"
        done
}

#3.调用
deploy () {
    tar_code
    scp_push_code
}

    deploy

 




 

以上是关于git jenkins 部署java项目的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins+Tomcat+Git解决Java项目自动化部署

jenkins 部署java 项目

Gitlab+jenkins持续集成+自动化部署

Jenkins部署java项目实例

Jenkins部署java项目实例02

jenkins部署java项目