Java教程

Jenkins部署JavaWeb项目——HelloWorld

本文主要是介绍Jenkins部署JavaWeb项目——HelloWorld,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Jenkins部署JavaWeb项目——HelloWorld

环境:

  • IntelliJ IDEA 

  • 云服务器一台(CentOS7)

1. 创建JavaWeb项目

使用Spring Boot框架搭建项目:

img

目录结构:

img

pom.xml导入依赖:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
​
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

Controller

@Controller
public class HelloController {
​
    @RequestMapping("/")
    public String welcome(){
        return "main";
    }
​
    @RequestMapping("/hello/{name}")
    public String hello(@PathVariable String name, Model model){
        System.out.println(name);
        String msg=name+"你好呀!";
        model.addAttribute("msg",msg);
        return "hello";
    }
}

hello.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8"/>
</head>
<body>
<p th:text="${msg}">你好呀, Thymeleaf</p>
</body>
</html>

main.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8"/>
</head>
<body>
<p>Spring boot集成 Thymeleaf</p>
</body>
</html>

application.properties

server.port=8088

运行截图

img

img

项目打包:(主要是为了拿到war项目的名称)

 当然也可以直接通过pom文件中的信息,获取war项目名称:

名称为: jekins-damo-0.0.1-SNAPSHOT.war

 

2. 推送到代码仓库

(1)使用gitee创建一个远程仓库

(2)在idea终端输入以下git指令:

git init 
git add .
git status
git commit -m"初次提交"
git remote add origin https://gitee.com/XXXX.git #仓库地址换成自己的
git push -u origin master  

指令全部执行之后会弹出对话框输入gitee账号和密码。如果没有对话框(第一次输入错误,之后默认使用该次输入的账号,不再弹出对话框),输入以下指令进行信息重置

git config --system --unset credential.helper

3. 软件安装

 使用XShell连接到云服务器。

3.1 安装Jenkins

官方安装指南:https://www.jenkins.io/download/(选择适合自己操作系统的指南)。以下参考的是CentOS7对应的安装指南。

(1)进入一个指定目录方便文件管理,比如:cd /usr/local/

(2)依次输入以下指令:

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo 
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key 
sudo yum upgrade 
sudo yum install epel-release java-11-openjdk-devel 
sudo yum install jenkins 
sudo systemctl daemon-reload
注:安装过程中可能会出现网络连接失败的问题。可以ctr+c先结束当前执行过程,ping一下提示信息中显示的域名,能够ping通再重新执行之前的命令

(3)启动jenkins

sudo systemctl start jenkins
sudo systemctl status jenkins # 查看运行状态。看到 Active:active(running) 表示运行。状态信息中包含了Jenkins安装目录

(4)访问Jenkins运行之后的网址

http://云服务器公网ip:8080/  # 8080是Jenkins默认的端口号,如果和tomcat冲突,可以在对应的配置文件中修改

(5)根据引导进行安装即可,初始账号密码最好记住。插件根据推荐进行安装。 

(6)其他指令

cat /etc/sysconfig/jenkins # 查看默认安装路径下jenkins的配置文件
ls /var/lib/jenkins/  # 查看程序主目录
jenkins:service jenkins stop # 停止
jenkins:service jenkins restart  # 重启

3.2 安装maven

cd /usr/local  #进入一个指定的目录,方便文件管理
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz # 下载压缩包,下载地址可以自己搜索。格式:wget url 。
tar zvxf apache-maven-3.6.1-bin.tar.gz #解压
whereis maven # 显示maven的安装路径,之后Jenkin全局配置的时候需要用到

 

4. Jenkins配置

(1)安装插件:

  • 插件1:Deploy a container(如列表中不存在,则点击 Check now 更新插件列表)
  • 插件2:Gitee (如列表中不存在 ,则点击 Check now 更新插件列表)
  • 安装之后重启jenkins

(2)配置maven:

添加maven的安装路径:系统设置—>全局工具配置—>Maven配置

(3)配置JDK:先使用默认值,不行再配置,配置同理

(4)配置git:先使用默认值,不行再配置,配置同理

 

5. Jenkins创建新任务

5.1 修改Tomcat配置文件

解释:Jenkin将项目构建好之后,会将war包部署到Tomcat中运行。为安全考虑需要设置访问tomcat所需的账号和密码

(1)Manager webapp账号设置 修改 tomcat/conf/tomcat-user.xml 文件,用以下代码完全替换掉原本文件。(可以详细阅读原tomcat-user.xml文件中的注解说明)
<?xml version="1.0" encoding="UTF-8"?>

<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <user roles="manager-jmx"/>
    <user roles="manager-status"/>
    <---用户名和密码改成自己的->
    <user username="admin" password="123" roles="manager-gui,manager-script,manager-jmx,manager-status"/>

</tomcat-users>

修改 tomcat/webapps/manager/META-INF/context.xml 文件,将文件中的以下语句注释掉:

<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

注:该语句表示Manager webapp 只能本地访问,远程是无法访问的。而我们需要进行远程访问,所需不能这么写。

(2)端口设置

因为Jenkins和tomcat安装在同一台服务器上,且二者的默认使用端口号都是8080,会产生冲突。所以这里将tomcat的端口号改成8081。在tomcat/conf/service.xml 文件中进行修改,将所有8080都换成8081。

5.2 Jenkins构建配置

(1)新建任务:选择“构建一个自由风格的软件项目”

(2)General:使用默认值即可

(3)源码管理

选择 Git  —> 添加代码仓库地址 ->添加登录代码仓库的凭据(账号信息)->指定分支(使用默认值)

 (4)构建触发器

选择“Gitee webhook 出发构建” .(如果没有安装gitee webhook插件这一项是没有的)

 选中之后会出现一些配置项,其他都不管使用默认值。找到 Gitee WebHook密码,点击生成。

 添加Gitee WebHook:进入代码仓库->管理->WebHook->添加WebHook

粘贴url和密码

(5)构建

下拉框中选中“调用顶层maven目标”(注意:如果没有在全局工具配置中设置maven这一项是没有的)

 

(6)构建后的步骤

选中“Deploy war/ear to a container”(如果没有安装Deploy a container插件,这一项是没有的)

WAR/EAR fire 输入:target/xxx.war(war包名称)

Tomcat远程登陆中的凭据,根据之前tomcat配置文件中设置的用户名和密码来创建。

 (6)设置完毕,点击保存。

 

6、测试

点击“立即构建”

构建成功之后,输入tomcat运行的url进行测试。此后每次推送代码都会自动部署到tomcat。

 

7. 参考

1、Jenkins官方文档

2、Jenkins for Gitee

3、Linux命令大全(手册)

这篇关于Jenkins部署JavaWeb项目——HelloWorld的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!