linux jenkins 2.89.1 安装部署 持续构建svn下maven项目并部署到tomcat

news2025/1/11 4:04:43

从这边博文可以学习到: 

  1. jenkins的安装
  2. 修改主目录
  3. 初始化
  4. 新建任务,构建第一个maven项目
  5. 将构建完成的项目部署到tomcat

Jenkins的安装相当简单,只需要从官网下载war包,放入tomcat,运行tomcat就可以访问Jenkins了

准备工作:安装java环境,一个tomcat7+。如果构建maven项目还需要安装maven

1.从Jenkins官网下载jenkins.war

wget http://mirrors.jenkins.io/war-stable/2.89.1/jenkins.war

2.将jenkins.war放入tomcat/webapps/

3.启动tomcat

Jenkins安装成功,去浏览器访问

ip:端口/jenkins    端口就是部署Jenkins的tomcat端口

访问会看到如下界面,第一次访问Jenkins需要解锁Jenkins

页面红色字体是密码路径

我们打开这个文件 复制密码

粘贴到密码框

点击continue继续

暂停一下。。。。

修改jenkins主目录

jenkins默认的主目录是用户目录/.jenkins/

我使用的是root账户所以默认主目录在/root/.jenkins/下

从tomcat启动日志中也打印了jenkins的主目录信息

Jenkins home directory: /root/.jenkins found at: $user.home/.jenkins

我们不使用默认目录,将jenkins住目录修改为自己的目录方便管理

修改方式:编辑webapps/jenkins/WEB-INF/web.xml文件

  <!-- if specified, this value is used as the Hudson home directory -->
  <env-entry>
    <env-entry-name>HUDSON_HOME</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value></env-entry-value>
  </env-entry>

将指定的jenkins主目录放入<env-entry-value></env-entry-value>节点

  <!-- if specified, this value is used as the Hudson home directory -->
  <env-entry>
    <env-entry-name>HUDSON_HOME</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>/usr/local/softs/jenkins/home-dev/</env-entry-value>
  </env-entry>

:wq 保存退出

重启tomcat  访问jenkins

我们可以看到红色密码路径已经变成了自定义的目录

同样的操作,输入密码

vi /usr/local/softs/jenkins/home-dev/secrets/initialAdminPassword

下一步

这一步是选择安装插件,我们选择左侧,安装建议的插件

稍等一会,正在自动下载并安装插件

安装完成之后会自动到创建用户界面

可以在这里创建一个用户,我没有创建,使用默认账户admin,点击右下角Continue as admin ,创建的话点击Save and Finish

ps:如果使用默认admin,用户名为admin 密码是第一次进入jenkins使用的那个初始化密码

jenkins初始化完毕,点击Start using Jenkins 开始使用

修改密码:点击右上角登录用户->点击左侧设置->在密码出输入新密码并确认密码->点击保存修改为新密码

进入主界面

配置jenkins

为构建第一个maven项目配置jenkins环境

1.配置jdk/maven  点击系统管理->全局工具配置

点击新增JDK

不勾选自动安装,使用我们自己安装的jdk

输入JAVA_HOME

maven

点击新增maven,取消自动安装勾选

点击save

2.安装插件   点击系统管理->管理插件

构建maven需要3个插件

Subversion Plug-in:svn插件,初始化的时候已经安装

Maven Integration plugin:用来构建maven项目

Deploy to container Plugin:将web项目构建之后自动部署到tomcat

在可选插件中勾选要安装的插件

点击直接安装

勾选 安装完成后重启Jenkins(空闲时) 安装完成后Jenkins会自动重启

安装成功重启之后新建任务会有

新建任务,构建第一个maven项目

General

源码管理

选择 Subversion,输入url,警告显示不能访问库,点击Add添加svn用户名密码

添加svn用户名密码

添加之后,Credentials选择刚才添加的账号密码

构建触发器

构建环境

构建环境是对maven的配置

Root POM:pom.xml文件的位置,一般都在根目录

Goals and options:执行mvn命令

 jenkins还支持构建前后的个性化操作Pre Steps / Post Steps

Pre Steps:构建之前执行

Post Steps:构建之后执行

Pre Steps / Post Steps 可以执行shell,执行maven命令等

这两个非常有用,比如在构建之前关闭tomcat,在构建之后重新启动tomcat .  

eg:下面我们再构建前构建后分别执行一段shell命令

构建设置

可以设置发邮件通知

构建后操作(部署到tomcat)

在以上步骤全部完成之后执行构建后操作,可以deploy项目到仓库,构建完成之后删除workspace目录,如果是web项目,还可以将war部署到tomcat

我们具体操作下将war部署到tomcat

1.准备一个完整的tomcat

从官网下载的tomcat webapps/目录结构

启动之后可以访问tomcat主页

2.修改tomcat/conf/tomcat-users.xml配置文件

在<tomcat-users></tomcat-users>节点里添加一个用户

<?xml version='1.0' encoding='utf-8'?>

<tomcat-users>
	<role rolename="admin-gui"></role>
	<role rolename="admin-script"></role>
	<role rolename="manager-gui"></role>
	<role rolename="manager-script"></role>
	<role rolename="manager-jmx"></role>
	<role rolename="manager-status"></role>
	<!-- username:用户名 因为我svn的用户名是admin,为了好区分,我这里将用户名设置为tomcat-admin   password:密码 -->
	<user username="tomcat-admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>
<tomcat-users>

修改之后重新启动tomcat,我们访问tomcat主页测试一下用户名密码, 点击Manager App进入tomcat UI管理界面,点击Manager App 会提示登录,输入我们刚才设置的用户名/密码登录

登录成功则表示用户名密码可用

3.增加构建够操作步骤,选择Deploy war/ear to a container

WAR/EAR files:war路径,在项目target目录下,文件路径在solr-home/workspace/项目/target/xxx.war

Context path:部署到tomcat/werapps/的项目名称

设置完毕,开始构建

点击保存,在首页会看到一个名称为maven-web的项目

点击最右侧按钮构建

构建成功,我们去tomcat/webapps下看看

已经将war部署到webapps下并将war包名字修改为设置的maven-web.war

输入ip:端口/maven-web/index.jsp   访问成功

在jenkins的控制台输出可以看到构建前后的脚本也分别在构建之前构建之后执行

jenkins的安装部署,构建第一个maven项目,将构建完成的项目部署到tomcat已经全部完成,祝你好运

喜欢 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1610741.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PyCharm,终端conda环境无法切换的问题(二个解决方案)

问题 PyCharm终端&#xff0c;环境切换无效&#xff0c;默认始终为base 解决一 Settings->Tools->Terminal->ShellPath&#xff0c;将powershell修改为cmd.exe 解决二 conda config --show在输出中找到 auto_activate_base 的行&#xff0c;发现被设置为 true&#x…

数据结构-双链表(图解)

目录 双链表&#xff08;Double-Linked List&#xff09;的概念与基本特性 一、双链表的基本组成 二、双链表的主要特性 三、双链表的操作 代码展示 malloc开辟函数 解析 初始化 解析 头插 解析 尾插 解析 头删 解析 尾删 解析 pos之后插入 解析 pos删除 …

抖音小店无货源怎么做?教你新店快速起店新攻略,你还在等什么?

大家好&#xff0c;我是电商花花。 从我关注抖音小店这个风口到现在已经有很长时间了&#xff0c;从了解到实操到复盘&#xff0c;陆陆续续将多家单店店铺月营业额达到数百万。 目前团队运营着80多家店铺&#xff0c;人均管理3-5个店铺&#xff0c;大部分店铺月营业额都在5W-…

【C++】飞机大战项目记录

源代码与图片参考自《你好编程》的飞机大战项目&#xff0c;这里不进行展示。 本项目是仅供学习使用的项目 飞机大战项目记录 飞机大战设计报告1 项目框架分析1.1 敌机设计&#xff1a;1.2 玩家飞机控制&#xff1a;1.3 子弹发射&#xff1a;1.4 游戏界面与互动&#xff1a;1.5…

文本美学:text-image打造视觉吸引力

当我最近浏览 GitHub 时&#xff0c;偶然发现了一个项目&#xff0c;它能够将文字、图片和视频转化为文本&#xff0c;我觉得非常有趣。于是我就花了一些时间了解了一下&#xff0c;发现它的使用也非常简单方便。今天我打算和家人们分享这个发现。 项目介绍 话不多说&#xf…

OpenHarmony 上传和下载(API 10)教程~

介绍 本示例使用ohos.request接口创建上传和下载任务&#xff0c;实现上传、下载功能&#xff0c;hfs作为服务器&#xff0c;实现了文件的上传和下载和任务的查询功能。 效果预览 使用说明 1.本示例功能需要先配置服务器环境后使用&#xff0c;具体配置见上传下载服务配置。…

百度AI大会发布的APP Builder和Agent Builder有什么区别

百度在AI大会发布了三款AI工具&#xff0c;包括智能体开发工具AgentBuilder、AI原生应用开发工具AppBuilder、各种尺寸的模型定制工具ModelBuilder 有很多人就问&#xff0c;APP Builder和Agent Builder有什么不一样&#xff0c;怎么那么多builder? 你们就这么理解&#xff…

大语言模型隐私防泄漏:差分隐私、参数高效化

大语言模型隐私防泄漏&#xff1a;差分隐私、参数高效化 写在最前面题目6&#xff1a;大语言模型隐私防泄漏Differentially Private Fine-tuning of Language Models其他初步和之前的基线微调模型1微调模型2通过低秩自适应进行微调&#xff08; 实例化元框架1&#xff09; 在隐…

MySQL面试题 3

问题1&#xff1a;char、varchar的区别是什么&#xff1f; varchar是变长而char的长度是固定的。如果你的内容是固定大小的&#xff0c;你会得到更好的性能。 问题2: TRUNCATE和DELETE的区别是什么&#xff1f; DELETE命令从一个表中删除某一行&#xff0c;或多行&#xff0…

机器学习系统的设计

1.混淆矩阵 混淆矩阵作用就是看一看在测试集样本集中&#xff1a; 真实值是 正例 的样本中&#xff0c;被分类为 正例 的样本数量有多少&#xff0c;这部分样本叫做真正例&#xff08;TP&#xff0c;True Positive&#xff09;&#xff0c;预测为真&#xff0c;实际为真真实值…

Java反射(reflection)java很多框架的底层都需要用到反射,至于API使用的话,还算简单,主要是类加载过程和反射机制的一个底层机制要了解一下

十六、反射&#xff08;reflection&#xff09; 反射可以通过外部文件配置&#xff0c;在不修改源码的情况下来控制程序&#xff0c;符合设计模式中的OCP原则&#xff08;开闭原则&#xff1a;不修改源码&#xff0c;扩容功能&#xff09;。 1、反射机制 &#xff08;1&…

SpringCloud系列(7)--Eureka服务端的安装与配置

前言&#xff1a;上一章节我们介绍了Eureka的基础&#xff0c;本章节则介绍Eureka服务端的安装与配置 Eureka架构原理图 1、创建Eureka Server端服务注册中心模块 (1)在父工程下新建模块 (2)选择模块的项目类型为Maven并选择模块要使用的JDK版本 (3)填写子模块的名称&#xf…

【C++】:函数重载,引用,内联函数,auto关键字,基于范围的for循环,nullptr关键字

目录 一&#xff0c;函数重载1.1 函数重载的定义1.1.1.形参的类型不同1.1.2参数的个数不同1.1.3.参数的顺序不同1.1.4.有一个是缺省参数构成重载。但是调用时存在歧义1.1.5.返回值不同&#xff0c;不构成重载。因为返回值可接收&#xff0c;可不接受&#xff0c;调用函数产生歧…

如何设计单元测试用例?

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 最近一些大公司在进行去测试化的操作&#xff0c;这一切的根源大概可以从几年前微软一刀切砍掉所…

【深度学习实战(10)】图像推理之预处理

一、预处理流程 在把一张图像送入模型进行推理时&#xff0c;需要先进行预处理&#xff0c;预处理流程包括&#xff1a; &#xff08;1&#xff09;读取图像 &#xff08;2&#xff09;尺寸调整&#xff0c;letter_box&#xff08;不失真&#xff09; &#xff08;3&#xff0…

MATLAB绘制圆锥曲线:抛物线,双曲线,椭圆

MATLAB绘制圆锥曲线:抛物线,双曲线,椭圆 clc;close all;clear all;warning off;%清除变量x linspace(-10, 10, 1000); % 创建一个x值的向量&#xff0c;范围从-10到10&#xff0c;共1000个点 y x.^2; % 计算每个x值对应的y值% 使用plot函数绘制图形 figure; % 创建一个新的图…

排序 “壹” 之插入排序

目录 ​编辑 一、排序的概念 1、排序&#xff1a; 2、稳定性&#xff1a; 3、内部排序&#xff1a; 4、外部排序&#xff1a; 二、排序的运用 三、插入排序算法实现 3.1 基本思想 3.2 直接插入排序 3.2.1 排序过程&#xff1a; 3.2.2 代码示例&#xff1a; 3.2.3…

使用Spring进行文件的上传和下载

概览 使用Spring进行文件的上传和下载Spring上传文件接口设计dubbo接口设计上传文件流的RPC的接口设计 Spring文件下载接口设计dubbo接口设计下载文件流的RPC的接口设计 spring上传文件大小控制 使用Spring进行文件的上传和下载 本文主要介绍在Spring框架下面调用微服务的dubb…

YOLOv9改进策略 | 添加注意力篇 | 利用ILSVRC冠军得主SENetV1改善网络模型特征提取能力

一、本文介绍 本文给大家带来的改进机制是SENet&#xff08;Squeeze-and-Excitation Networks&#xff09;其是一种通过调整卷积网络中的通道关系来提升性能的网络结构。SENet并不是一个独立的网络模型&#xff0c;而是一个可以和现有的任何一个模型相结合的模块(可以看作是一…

项目实践:贪吃蛇

引言 贪吃蛇作为一项经典的游戏&#xff0c;想必大家应该玩过。贪吃蛇所涉及的知识也不是很难&#xff0c;涉及到一些C语言函数、枚举、结构体、动态内存管理、预处理指令、链表、Win32 API等。这里我会介绍贪吃蛇的一些思路。以及源代码也会给大家放到文章末尾。 我们最终的…