发布时间:2023-12-23 19:00
项目是 SpringBoot ,源代码从 git 获取,使用 maven 编译和 打包为War包,Jenkins 自动部署到远程的 tomcat。
apache-tomcat-8.5.56\\conf\\tomcat-users.xml
<role rolename=\"manager-gui\"/>
<user username=\"jenkins\" password=\"jenkins123\" roles=\"manager-gui\"/>
完整配置如下:
<role rolename=\"admin-gui\"/>
<role rolename=\"manager-gui\"/>
<role rolename=\"manager-script\"/>
<role rolename=\"manager-jmx\"/>
<role rolename=\"manager-status\"/>
<user username=\"jenkins\" password=\"jenkins123\"
roles=\"admin-gui,manager-gui,manager-script,manager-jmx,manager-status\"/>
用户名是 jenkins,密码是 jenkins123 ,按需自定义。
检查tomcat 配置情况,登录 http://127.0.0.1:8080
,如下图所示。
输入用户名和密码,
进入应用管理页面,如上所示。
apache-tomcat-8.5.56\\webapps\\manager\\META-INF\\context.xml 中注释掉配置
或者,将 allow的值修改为
allow=\"127\\.\\d+\\.\\d+\\.\\d+|::1|0:0:0:0:0:0:0:1\"
修改为
allow=\"^.*$\"
apache-tomcat-8.5.56/webapps/manager/WEB-INF/web.xml
<multipart-config>
<max-file-size>524288000max-file-size>
<max-request-size>524288000max-request-size>
<file-size-threshold>0file-size-threshold>
multipart-config>
apache-tomcat-8.5.56/webapps/host-manager/META-INF/context.xml
allow=\"127\\.\\d+\\.\\d+\\.\\d+|::1|0:0:0:0:0:0:0:1\"
修改为
allow=\"^.*$\"
项目是 SpringBoot ,源代码从 git 获取,使用 maven 编译和 打包为War包,自动部署到远程的 tomcat,所涉及到的 Jenkins插件如下。
插件 | 名称 |
---|---|
Maven Integration plugin | Maven集成插件 |
Git plugin | Git插件 |
Publish Over SSH | SSH推送插件 |
Deploy to container | 应用服务器推送插件 |
C:\\Users\\admin\\.m2\\settings.xml
将 Maven 的 settings.xml
<settings xmlns=\"http://maven.apache.org/SETTINGS/1.0.0\"
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xsi:schemaLocation=\"http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd\">
<localRepository>D:/dev_tools/maven_repo/repository/localRepository>
<mirrors>
<mirror>
<id>alimavenid>
<mirrorOf>centralmirrorOf>
<name>aliyun mavenname>
<url>http://maven.aliyun.com/nexus/content/repositories/central/url>
mirror>
<mirror>
<id>mvnrepositoryid>
<mirrorOf>mvnrepositorymirrorOf>
<url>http://mvnrepository.com/url>
mirror>
<mirror>
<id>aliyunMavenid>
<mirrorOf>centralmirrorOf>
<name>aliyunMavenname>
<url>http://maven.aliyun.com/nexus/content/groups/publicurl>
mirror>
<mirror>
<id>aliyunmavenid>
<mirrorOf>*mirrorOf>
<url>https://maven.aliyun.com/repository/publicurl>
mirror>
<mirror>
<id>aliyunmaven-springid>
<mirrorOf>*mirrorOf>
<url>https://maven.aliyun.com/repository/spring/url>
mirror>
<mirror>
<id>tencentyunid>
<mirrorOf>*mirrorOf>
<name>tencentyunname>
<url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/url>
mirror>
<mirror>
<id>clojars.orgid>
<mirrorOf>*mirrorOf>
<url>http://clojars.org/repourl>
mirror>
mirrors>
<profiles>
<profile>
<id>developmentid>
<activation>
<jdk>1.8jdk>
<activeByDefault>trueactiveByDefault>
activation>
<properties>
<maven.compiler.source>1.8maven.compiler.source>
<maven.compiler.target>1.8maven.compiler.target>
<maven.compiler.compilerVersion>1.8maven.compiler.compilerVersion>
properties>
profile>
profiles>
settings>
(1)Repository URL(Git的仓库地址)
http://127.0.0.1:8550/devall/lost_customer_repair.git
(2)Credentials(凭证)
首先要凭证,凭证的种类很多,我选择是用户名和密码。
(3)填写完成后存在,源码管理的配置如下图所示。
此项是可选项。
构建触发器是指在满足某些情况下,触发某个条能,能够自动进行项目构建。
Build after other projects are built
(其他工程构建后触发)Build periodically
(定时构建)GitHub hook trigger for GITScm polling
(github 上代码有变动时构建)Poll SCM
(轮询scm)Jenkins 任务配置完成后,通过两种方式执行,一种是在任务列表中手动执行,另一种就是在此处配置触发器(或定时器),满足条件后自动执行。
Build periodically
(定时构建)Build periodically
类似于Spring的 cron表达式、 quartz 定时框架 。
Build periodically 配置如下:
* * * * *
(五颗星,中间用空格隔开)
定时字符串从左往右依次是: 分 时 日 月 周 (有点想cron表达式)
第一颗*表示分钟,取值0~59
第二颗*表示小时,取值0~23
第三颗*表示一个月的第几天,取值1~31
第四颗*表示第几月,取值1~12
第五颗*表示一周中的第几天,取值0~7,其中0和7代表的都是周日
1.每30分钟构建一次:
H/30 * * * *
2.每2个小时构建一次
H H/2 * * *
3.每天早上8点构建一次
0 8 * * *
4.每天的8点,12点,22点,一天构建3次
0 8,12,22 * * *
(多个时间点,中间用逗号隔开)
5.问题来了:每个月的1-7号一天构建一次咋写呢?
请在屏幕下方写出你的答案,写对有奖励!
Poll SCM
(轮询scm)轮询scm,是指定时扫描本地代码仓库的代码是否发生变更,如果代码有变化那么就会触发构建行为
比如,每隔30分钟检查一次源码变化,(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作。
注意:这个触发器,Jenkins会定时扫描本地整个项目的代码,增大系统的开销,不建议使用
Build after other projects are built
(其他工程构建后触发)有时候我们构建需要在其他项目构建完毕之后才能去构建,那么就可以采用这种方式。
举个案例场景,比如我下面Job1是web项目打包并发布的构建任务,我想每次打完包发布后,然后触发自动化测试Job2的构建。
这里可以输入多个依赖的jobs,多个job中间用逗号隔开。启动第一个Job完成后,就能接着启动第二个Job。
注:Build periodically
和 Poll SCM
两者是可以结合起来使用的。
GitHub hook trigger for GITScm polling
(github 上代码有变动时构建)管理 github 上代码有变动时构建。
最后这2个一般用的也少,了解下就行。
本项目采用 Maven进行项目管理,故此处选择 Invoke top-level Maven targets
。
Maven版本:
选择之前已经配置的 maven3.5.4
目标的配置如下:
clean install
Maven完整配置如下图所示:
在上一步中,使用:Maven完整的项目的编译和打包,接下来就是将war包部署到tomcat中, 故选择 Deploy war/ear to a container
。
Jenkins 凭据提供者(添加用户名和密码)
在tomcat配置中,创建的管理员用的用户名和密码如下
用户名是 jenkins
密码是 jenkins123
Tomcat URL:
http://localhost:8080/manager/text
点击Build Now
或者 右侧的三角按钮。
sqlite3数据存储最多存储多少条数据?达到上限如何处理?_把 14 亿人拉到一个微信群,如何实现?...
使用TeXLive2022和VSCode安装配置步骤(LaTeX写论文)
非深度网络 Non-deep Network:低延迟平行网络 ParNet,仅 12 层媲美 ResNet
蓝桥ROS之f1tenth简单PID沿墙跑起来(Python)
【MindSpore-GPU-1.1.0】【LeNet5】训练报cudaHostAlloc failed
Spring框架系列(13) - SpringMVC实现原理之DispatcherServlet的初始化过程
把一个人的特点写具体作文_五年级把一个人的特点写具体作文500字5篇