jenkins上线java项目
1.Java项目部署基本概述?
1.什么是Java项目?
2.为什么Java项目需要使用Maven编译?
3.手动实现Java项目构建?
4.手动实现Java项目架构图?
2.手动部署Java项目至Web集群?
1.搭建Nginx+Tomcat集群架构?
2.开发提交Java源代码至gitlab仓库?
3.手动获取Java源代码,然后使用maven进行编译? yum install java maven -y
4.私服? mvn-->neuxs-->aliyun
5.将编译后的war包部署至Tomcat集群?
6.最后通过浏览器访问测试,检测项目是否部署OK?
3.自动部署Java项目至Web集群?
1.Jenkins安装Maven插件,使其支持Maven项目创建?
2.Jenkins配置JDK路径以及Maven路径。
3.Jenkins创建Maven项目,然后进行构建。
4.编写自动上线脚本推送至web集群,最后通过浏览器访问?
5.优化部署脚本,使其支持上线与回滚功能?
6.项目相同版本可以重复构建,如何处理该问题?
1.Java项目部署基本概述
1.1 什么是java项目
简单来说就是使用java编写的代码,我们将其称为java项目
1.2 为什么java项目需要maven编译
由于java编写的代码时无法直接在服务器上运行,需要使用maven根据进行打包。
简单理解:java源码就像汽车的一堆散件,必须组装才是一辆完整的汽车。这里的组装汽车可以理解是maven编译的过程。
1.3 实现自动化构建java项目前,先手动实现
为什么,首先大家对java项目不熟悉,其次要想实现自动化发布代码,必须先回手动实现。所以我们先拿到一个圆满—>然后提交到gitlab—>使用mvn手动构建—>最后推送war至tomcat发布。
1.4 实现手动构建java项目架构图
2.手动部署Java项目至Web集群
2.1 搭建Nginx+Tomcat集群架构
#1.安装tomcat(10.0.0.7-10.0.0.8都执行)
yum install java -y
[root@web01 ~]# yum install java -y
#注意,下面只是二进制安装java的方式,不是在这要执行,可以用yum安装java,也可以用二进制方式安装
#2.二进制安装jdk
jdk使用二进制
tomcat使用二进制
# mkdir /soft/
# tar xf jdk-8u60-linux-x64.tar.gz -C /soft/
# ln -s /soft/jdk1.8.0_60 /soft/jdk
# vim /etc/profile
#...最后面添加...
export JAVA_HOME=/app/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
#3.二进制安装tomcat
[root@web01 ~]# mkdir /soft && cd /soft
#wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.53/bin/apache-tomcat-9.0.53.tar.gz
[root@web01 soft]# tar xf apache-tomcat-9.0.53.tar.gz
[root@web01 soft]# ln -s apache-tomcat-9.0.53 /soft/tomcat
[root@web01 soft]# /soft/tomcat/bin/startup.sh
[root@web01 soft]# netstat -lntp|grep java
[root@web001 ~]# netstat -lntp|grep java
tcp6 0 0 :::8009 :::* LISTEN 8738/java
tcp6 0 0 :::8080 :::* LISTEN 8738/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 8738/java
#4.负载均衡配置
[root@lb01 ~]# cat /etc/nginx/conf.d/proxy_java.cwq.com.conf
upstream java.cwq.com{
server 10.0.0.7:8080;
server 10.0.0.8:8080;
}
server {
listen 80;
server_name java.cwq.com;
location / {
proxy_pass http://java.cwq.com;
proxy_set_header Host $host;
}
}
# nginx -t
# systemctl restart nginx
#5.windows中的hosts文件劫持域名
10.0.0.5 html.cwq.com java.cwq.com
#4.Tomcat配置文件详解
一个server表示一个tomcat实例
一个server中包含多个Connector连接器,Connector的主要功能是接受、响应用户请求。
service的作用是:将connector关联至engine(catalina引擎)
一个host就是一个站点,类似于nginx的多站点
context类似于nginx中location的概念
#5.Tomcat配置虚拟主机 ---> 一台服务器运行多个站点
<!--tomcat虚拟主机-->
<Host name="tomcat1.oldxu.com" appBase="/code1"
unpackWARs="true" autoDeploy="true">
<!--类似于nginx的location path是访问的路径 ->映射 docBase是真实的路径-->
<Context docBase="/code1/admin" path="/test