对于Java程序,Jenkins需要使用构建工具,如maven、ant等,其中maven比较流行。这里就用maven实现Java应用的部署。
1 GitLab准备Java代码
![Jenkins部署Java应用到Tomcat服务器 Jenkins部署Java应用到Tomcat服务器](https://image.shishitao.com:8440/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzLzIwMjMwMS84M2ZhOWNkODA2ZjM1ZWNiYzYyMzE4MGE2NmZmNjIwMjE3NzY1OS5wbmc%3D.png?w=700)
![Jenkins部署Java应用到Tomcat服务器 Jenkins部署Java应用到Tomcat服务器](https://image.shishitao.com:8440/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzLzIwMjMxL2U3Njk4OTJhMTk4Ny5wbmc%3D.png?w=700)
2 部署Tomcat并配置
apt-get -y install tomcat9 tomcat9-admin
cp -r /usr/share/tomcat9-admin/* /var/lib/tomcat9/webapps/
打开/var/lib/tomcat9/conf/tomcat-users.xml,做如下配置:
#添加下面三行,创建用户并授权。manager-script为远程脚本执行权限
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>
打开/var/lib/tomcat9/webapps/manager/META-INF/context.xml,做如下配置:
#注释下面行。默认只能127.0.0.1本机访问,注释掉后就能远程访问
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
之后重启tomcat9
3 安装maven和tomcat插件
Maven插件可以实现maven风格的任务
![Jenkins部署Java应用到Tomcat服务器 Jenkins部署Java应用到Tomcat服务器](https://image.shishitao.com:8440/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzLzIwMjMxLzk1YjY1MjNkYmU2Mi5wbmc%3D.png?w=700)
Deploy to container插件实现连接tomcat
![Jenkins部署Java应用到Tomcat服务器 Jenkins部署Java应用到Tomcat服务器](https://image.shishitao.com:8440/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzLzIwMjMwMS8zNGU2YmM1MzcwN2JkZWMyNDc2NjY0OTBiODE3ZTZiZGVlNzYzYS5wbmc%3D.png?w=700)
4 Jenkins服务器安装maven和配置镜像加速
打开/etc/maven/settings.xml文件,做如下配置:
#在<mirrors>…</mirrors>之间添加如下内容
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
查看相关变量值
![Jenkins部署Java应用到Tomcat服务器 Jenkins部署Java应用到Tomcat服务器](https://image.shishitao.com:8440/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzLzIwMjMwMS85MWIzMDNhNDlhYWZlMjYyNDc1NDIzMzAwYzkyZjRkZGMyMDYyMC5wbmc%3D.png?w=700)
5 Jenkins全局工具配置jdk和maven
![Jenkins部署Java应用到Tomcat服务器 Jenkins部署Java应用到Tomcat服务器](https://image.shishitao.com:8440/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzLzIwMjMwMS85N2I3N2MyOTIxMTViYmIwMGI4MTAwYjM4NDNkNjZmM2RjZDg3Ni5wbmc%3D.png?w=700)
![Jenkins部署Java应用到Tomcat服务器 Jenkins部署Java应用到Tomcat服务器](https://image.shishitao.com:8440/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzLzIwMjMwMS8zOTIyNzc1NTZiYTQ5ODUwZjBmMTE0NjhlNDYwYzAxYzU3NjE5NS5wbmc%3D.png?w=700)
![Jenkins部署Java应用到Tomcat服务器 Jenkins部署Java应用到Tomcat服务器](https://image.shishitao.com:8440/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzLzIwMjMwMS8xMTU2ZmViOTQ3MDc0ZmYyZTE0MzA4ZjZmZGFmNjY0NTdkZDJkOC5wbmc%3D.png?w=700)
6 创建tomcat的全局凭据
根据tomcat的用户权限配置,创建jenkins连接tomcat的用户和权限
![Jenkins部署Java应用到Tomcat服务器 Jenkins部署Java应用到Tomcat服务器](https://image.shishitao.com:8440/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzLzIwMjMwMS82MWUxZmExNjcyNTliMzFkNDY4MzY4OWYyMTVlNzM2ZWI4NzZmZS5wbmc%3D.png?w=700)
7 创建任务
![Jenkins部署Java应用到Tomcat服务器 Jenkins部署Java应用到Tomcat服务器](https://image.shishitao.com:8440/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzLzIwMjMwMS8wNDgzNTFmODdjZTc1N2EzMmY1NDg1Zjc4N2U0Yjc1ZWYwYzhhNi5wbmc%3D.png?w=700)
![Jenkins部署Java应用到Tomcat服务器 Jenkins部署Java应用到Tomcat服务器](https://image.shishitao.com:8440/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzLzIwMjMxLzIzMWUyYzA2MTZmMi5wbmc%3D.png?w=700)
输入maven的编译选项clean package -Dmaven.test.skip=true
![Jenkins部署Java应用到Tomcat服务器 Jenkins部署Java应用到Tomcat服务器](https://image.shishitao.com:8440/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzLzIwMjMxLzYzOGQyMjU5NGQ3YS5wbmc%3D.png?w=700)
![Jenkins部署Java应用到Tomcat服务器 Jenkins部署Java应用到Tomcat服务器](https://image.shishitao.com:8440/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzLzIwMjMxL2MyNjFmZjg2NGZhMS5wbmc%3D.png?w=700)
![Jenkins部署Java应用到Tomcat服务器 Jenkins部署Java应用到Tomcat服务器](https://image.shishitao.com:8440/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzLzIwMjMxLzk3YTQ0YzhjODVjNi5wbmc%3D.png?w=700)
8 构建验证
![Jenkins部署Java应用到Tomcat服务器 Jenkins部署Java应用到Tomcat服务器](https://image.shishitao.com:8440/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzLzIwMjMwMS84NGI5MzY4MjYyNGU1NDg3NTQyMDk3MGMwNWU4MTgzZDZmZTUzZC5wbmc%3D.png?w=700)