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) #.打包代码
tar_code() {
cd ${WORKSPACE}
} #.推送代码
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项目的更多相关文章

  1. jenkins部署java项目,脚本文件放在远程仓库中 和jar一起打包(六)

    jenkins部署java项目到远程linux上,脚本文件和项目一起上传到gogs上,直接执行gogs上的脚本文件来执行项目 (1)新建maven项目 pom.xml的配置 <project x ...

  2. 通过Jenkins部署java项目

    部署java项目-创建私有仓库 Jenkins大多数情况下都是用来部署Java项目,Java项目有一个特点是需要编译和打包的,一般情况下编译和打包都是用maven完成,所以系统环境中需要安装maven ...

  3. Win10搭建Jenkins部署Java项目(本机和远程Win10部署)

    目录 一.前言&背景 二.环境准备 三.插件安装 四.全局配置 Maven JDK Git Maven 五.新建项目并配置 新建项目 配置 1.Discard old builds 2.Thi ...

  4. Docker使用jenkins部署java项目到远程linux(三)

    实现功能:从本地提交代码到gogs上,本地的代码会被检测一遍 如果检测通过才能commit成功 然后可以继续执行push命令 .push后在gogs上使用web钩子自动推送到jenkins触发构建,j ...

  5. jenkins部署java项目

    #########################################jenkins部署#################################3 一.jenkins是什么? J ...

  6. jenkins部署java项目到远程linux(四)

    (1)新建java项目(maven构建) pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:x ...

  7. jenkins部署java项目在本地(三)

    (1)新建maven构建的java项目 pom.xml的配置 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns ...

  8. jenkins部署java项目(五)

    一.web server安装jdk+tomcat其中jdk可以为openjdk,版本1.8 1.1 安装jdk环境 方式一:直接使用yum安装openjdk # * 方式二:本地安装在oracle官网 ...

  9. Jenkins部署Python项目实战

    一.背景 我们工作中常用Jenkins部署Java代码,因其灵活的插件特性,例如jdk,maven,ant等使得java项目编译后上线部署一气呵成,同样对于脚本语言类型如Python上线部署,利用Je ...

随机推荐

  1. JavaScript之基本语句

    前面的内容记录了JavaScript的一些基本概念,本次主要讲解一下JS中常用的语句. 和大多数其他编程语言一样,JS也主要包括:选择.循环.错误检测.函数等.JS的语句基本是由值.运算符.表达式.关 ...

  2. mysql备份脚本并保留7天

    脚本需求: 每天备份mysql数据库,保留7天的脚本. 存放在/opt/dbbak目录中. 脚本名称为database_xxxx-xx-xx.sql 脚本内容: #!/bin/bash export ...

  3. 格子游戏Grid game CodeForce#1104C 模拟

    题目链接:Grid game 题目原文 You are given a 4x4 grid. You play a game — there is a sequence of tiles, each o ...

  4. Python人工智能第一篇:语音合成和语音识别

    Python人工智能第一篇:语音合成和语音识别 ​ 此篇是人工智能应用的重点,只用现成的技术不做底层算法,也是让初级程序员快速进入人工智能行业的捷径.目前市面上主流的AI技术提供公司有很多,比如百度, ...

  5. IT修养-基础篇

    1.科学基础 成为开发人员的过程不尽相同,有的是科班出身,有的是兴趣爱好,还有的是专业机构的培训,在这个过程中,可能全面或者零散甚至没有学习过计算机基础学科,但无论是哪一种,想要成为更高层次的开发人员 ...

  6. flask+layui+echarts实现前端动态图展示数据

    效果图: 该效果主要实现一个table展示数据,并在下方生成一个折线图. 实现方式: 1.首先需要对表格进行一个数据加载,这里用到了layui的table.render,具体用法可以参考 https: ...

  7. 浅谈JavaScript的闭包原理

    在一般的教程里,都谈到子作用域可以访问到父级作用域,进而访问到父级作用域中的变量,具体是如何实现的,就不得不提及到函数堆栈和执行上下文. 举个例子,一个简单的闭包:   首先,我们可以知道,examp ...

  8. Spring MVC-从零开始-未完待续

    Spring MVC 之 json格式的输入和输出 Spring定时器简单使用 Spring mvc 拦截器的简单使用 Spring MVC文件上传

  9. layui-table与layui-rate评分转换成星级的使用

    需求:将layui-table中的某一列,例如:评分,从数据库中查找出来之后,进行layui-rate评分转换显示效果,为星星.显示效果如下: 实现代码: 1.layui中引入rate 2.table ...

  10. python基础(十七)

    今日主要内容 正则表达式 logging模块 一.正则表达式 (一)什么是正则表达式 正则表达式的定义: 是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个& ...