码云+Maven+Jenkins+Tomcat构建SpringBoot项目

在这里插入图片描述
个人觉得没必要提交一次代码触发一次构建,正常情况下我都要push好几次才会构建一次,所以今天记录的这个步骤需要在jenkins面板手动点击构建。

测试代码在文章末尾

1、环境


java

yum install java-1.8.0-openjdk.x86_64

maven

yum install maven

git

yum install git

tomcat

下载地址:官网蓝奏云(tomcat8.5,下载之后将后缀zip改为gz)

(以上所需详细安装方法网上有很多教程,这里不再啰嗦那么多了)

2、下载


官方下载地址
蓝奏云(下载之后将后缀改为war)
在这里插入图片描述
下载之后是一个war包

3、启动


将下载的war包放到tomcat webapp目录下,启动tomcat,访问jenkins项目(服务器ip:端口/jenkins),linux需要关闭防火墙
在这里插入图片描述

4、配置


解锁

第一次进入界面需要输入解锁密码,页面给出了解锁密码所在的位置

cat ~/.jenkins/secrets/initialAdminPassword

(tomcat日志也可以看到解锁密码)
在这里插入图片描述

安装推荐插件

选项一安装推荐插件,选项二选择插件安装,建议选择第一项。这里需要很久,可以去干点别的事情
在这里插入图片描述
可能有一部分插件会安装失败,可以点击retry重试,也可以点击Continue结束安装,进入控制面板后再根据需要安装
在这里插入图片描述
在这里插入图片描述

设置用户名和密码

在这里插入图片描述

设置jenkins路径

这个后面可以更改
在这里插入图片描述

控制台页面

在这里插入图片描述

设置插件安装源

访问路径:/jenkins/pluginManager/advanced

Update Site项设置为清华镜像源:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
在这里插入图片描述
(记得提交更改)

安装自定义插件

访问路径:/jenkins/pluginManager/available
在这里插入图片描述

  • Deploy to container
  • Maven Integration
  • Git(这个在推荐安装应该已经装过了)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    等待安装完成后重启
    安装状态:/jenkins/updateCenter/
    重启:/jenkins/restart/
    /jenkins/updateCenter/

环境配置

访问路径:/jenkins/configureTools/

根据自己的安装位置配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、开始


创建一个Maven项目

New Item
在这里插入图片描述

配置项目源码地址

  1. 切换到Source Code Management选项卡
  2. 填入源码地址后会出现图中的报错,这里需要添加一个认证证书,如图,点击Add>Jenkins在这里插入图片描述
    在这里插入图片描述
    在添加之前,需要把服务器的公钥关联到仓库
    生成公钥和私钥:ssh-keygen -t rsa
    什么都不要输入,一路回车
    查看公钥:cat /root/.ssh/id_rsa.pub
    在仓库中添加此公钥
    在这里插入图片描述
    查看私钥:cat /root/.ssh/id_rsa
    返回jenkins页面,到刚刚添加证书的位置
    选择SSH Username with private key项(我尝试过配置登陆账号和密码,但是依旧报错,原因不明)
    选中Enter directly单选框
    将私钥粘贴进去
    点击Add按钮
    在这里插入图片描述
  3. 选中刚刚添加的配置
    在这里插入图片描述
    如果依旧报错,点击Apply按钮,刷新页面
    在这里插入图片描述
    报错已经消失了

尝试构建

以上内容配置完成的话,可以尝试构建打包

  1. 保存配置,回到首页,点击Build Now按钮
    在这里插入图片描述
  2. 接着在左边构建列表内点击下拉菜单中的Concole Output按钮查看日志
    在这里插入图片描述
  3. 第一次构建则会下载很多jar包,这里稍作等待
    在这里插入图片描述
  4. 构建成功
    在这里插入图片描述
  5. 进入日志中显示的的目录(/home/me/.jenkins/workspace/test/target),可以看到打包成功的war包
    在这里插入图片描述

6、发布到tomcat

添加一个tomcat容器用来发布项目
启动后访问/manager后正常情况下会报403错误
在这里插入图片描述

配置tomcat远程连接

博主tomcat版本:8.5

  1. 编辑conf/tomcat-users.xml
    <tomcat-users>标签内增加如下代码
    (username和password自定)

    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <role rolename="manager-jmx"/>
    <role rolename="manager-status"/>
    <role rolename="admin-gui"/>
    <role rolename="admin-script"/>
    <user username="admin" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/>
    
  2. 编辑webapps/host-manager/META-INF/content.xml

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

    改为

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

    127改为了\d+

  3. 添加manager.xml

    vim conf/Catalina/localhost/manager.xml
    

    添加如下代码

    <Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager">  
    
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />  
    
    </Context> 
    
  4. 重启tomcat,并访问/manager
    在这里插入图片描述
    配置完成!

配置任务

  1. 点击下拉菜单中的Configure按钮配置刚刚我们创建的项目
    在这里插入图片描述
  2. 选中Post-build-Actions选项卡
    在这里插入图片描述
  3. 点击Add post-build action按钮,选择Depoly war/ear to a container选项
    在这里插入图片描述
  4. 添加tomcat
    在这里插入图片描述
    添加认证证书
    在这里插入图片描述
    usernamepassword为上面在tomcat-users.xml中所添加的
    在这里插入图片描述
    填写war所在路径
    Context path为构建后要访问的路径,任意即可
    在这里插入图片描述
  5. 配置完成后点击保存按钮

构建

重新构建,等待构建完成,这次应该很快
在这里插入图片描述
访问/ContextPath/接口名
在这里插入图片描述
完美
在这里插入图片描述

测试项目代码

最后贴上此文章所跑的代码,一个基本的SpringBoot项目

TestApplication

package com.example.test;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
public class TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }

}

@RestController
class TestController{

    @RequestMapping("hello")
    public String test(){
        return "hello jenkins";
    }
}

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.9.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>test</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>test</name>
    <description>Demo project for Spring Boot</description>
    <packaging>war</packaging>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值