【jenkins】离线安装配置(svn+maven项目)

Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson。
Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。
通常与版本管理工具(SVN、GIT)、构建工具(Maven、Ant、Gradle)结合使用。

jenkins离线安装及配置可见linux在线安装及配置jenkins

一.下载及安装

nohup java -jar jenkins.war --logfile=server.log --httpPort=8088 > server.log 2>& 1 & 

非离线状态时解决加载慢和插件安装慢的问题

  • 将谷歌地址改为百度,将更新地址改为国内地址
    切换到安装目录下的update目录,cd /root/.jenkins/update
    修改default.json(注意注意!)
http://www.google.com/改为http://www.baidu.com/
https://updates.jenkins.io/download/plugins/改为http://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/
  • 修改hudson.model.UpdateCenter.xml文件<url></url>内的地址如下
    切换到安装目录下,cd /root/.jenkins/
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>

  • 浏览器打开http://[ip]:8088
    根据提示输入密码
cat /root/.jenkins/secrets/initialAdminPassword  //查询密码命令
  • 如果是非离线,等待推荐插件安装;如果是离线,则跳过,之后手动安装

二、插件安装

离线安装方式

下载插件.hpi文件:https://plugins.jenkins.io//http://updates.jenkins-ci.org/download/plugins/
在这里插入图片描述

若安装报红色错,通过查看提示可知是缺少其他插件或者其他插件版本太低,因此需要下载相关插件。
若报黄色错误,通过提示可知已安装,需restart重启,http://[ip]:8088/restart重启

jenkins插件离线安装注意事项

  • 下载所用到的插件:publish-over-sshmaven-pluginsubversion
  • 出现错误缺少依赖插件或插件版本太低时,将缺少的或高版本的依赖插件安装后重新安装该插件
    最好下载最新版本

在这里插入图片描述

  • 出现重启提示时,在浏览器地址栏的jenkins地址后加/restart回车,然后在界面选择yes

三、配置

全局配置

jdk

可通过echo $JAVA_HOME获得jdk安装地址
在这里插入图片描述

maven

安装(离线的话需要自己配置仓库)
可通过echo $MAVEN_HOME获得jdk安装地址
在这里插入图片描述
在这里插入图片描述

系统配置

ssh

在这里插入图片描述

maven离线安装及配置

  1. 下载压缩包:http://maven.apache.org/download.cgi
    apache-maven-3.6.1-bin.tar.gz
  2. 上传apache-maven-3.6.1-bin.tar.gz到cd /usr/local,然后解压tar -zxvf apache-maven-3.6.1-bin.tar.gz
  3. 配置环境变量:vi /etc/profile
    在这里插入图片描述
  4. 使修改的环境变量生效source /etc/profile
  5. 检查mvn -v
  6. 修改仓库地址,vi /usr/local/apache-maven-3.6.1/conf/setting.xml(不修改的话默认是/root/.m2/repository)
    在这里插入图片描述
  7. 将相关依赖上传到自己的仓库(我是将本地开发环境仓库C:\Users\lg\.m2\repository内的都传了上去)

四、项目构建(maven+svn)

点击新建项目

在这里插入图片描述
输入项目名,构建Maven项目
在这里插入图片描述
点击OK,进入项目配置
在这里插入图片描述

配置SVN

svn地址与账密配置,其中账号密码需要通过Add按钮添加后再选择
在这里插入图片描述

build配置

在这里插入图片描述

Post Steps

选择build成功后才运行
在这里插入图片描述
选择通过之前系统配置的ssh server上传jar包和执行指令
在这里插入图片描述
ssh publishers配置,下图配置了两个transfers set,第一个是上传文件前执行指令,第二个是上传文件并执行指令
在这里插入图片描述

  • Name:选个一个在系统设置里配置的要部署jar包的服务器名字
  • Source files:需要上传的文件(相对于工作区,可填写多个,用,分隔)
  • Remove prefix针对source files要移除的目录前缀,不指定的话会在远程目录下新建相对地址文件夹而不是直接将jar包放在远程目录下
  • Remote directory远程目录(默认会继承系统配置,也可以自己设置绝对地址)
  • Exec command:文件上传后要执行的命令,命令执行是相对于用户的根目录的(我是用的root账户,所以是相对于/root)

如果有旧的jar包,则移除

# 切换到脚本存放目录
cd /opt/hrj/jenkins_test
# 使脚本可执行
chmod a+x rm_old_jar_city5g.sh 
# 执行脚本
./rm_old_jar_city5g.sh

启动新的jar包

cd /opt/hrj/jenkins_test
chmod a+x start_new_jar_city5g.sh
./start_new_jar_city5g.sh

rm_old_jar_city5g.sh

#!/bin/sh
echo "remove old jar ..."
# 如果jar包存在,则移除旧jar包
if [ -f intelligenceinsightserver-0.0.2-SNAPSHOT.jar ];then rm intelligenceinsightserver-0.0.2-SNAPSHOT.jar;echo "remove success" ;fi

start_new_jar_city5g.sh

#!/bin/sh
echo 'stopping application....'
# 查找旧jar包启动进程号
pid=`ps -ef | grep intelligenceinsightserver-0.0.2-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
# 如果有正在运行的,则停止该进程
if [ "$pid" == "" ];then echo 'apllicationis already stop!';else echo "kill -9 的pid:"+$pid;kill -9 $pid;fi
# 等2s
sleep 2s
echo 'running jar....'
# 启动新jar包
nohup java -jar intelligenceinsightserver-0.0.2-SNAPSHOT.jar > out.file 2>&1  &
echo 'running finish'

ssh执行命令脚本采坑

  1. 一开始,直接执行启动./opt/hrj/jenkins_test/start_new_jar_city5g.sh脚本报错Permission denied,也即没有权限,经过多番试验没解决,发现直接将脚本里的命令拿出来放在Exec command可以运行

  2. 修改后发现,执行没问题但是nohup没有在后台启动,而是直接启动在前台,导致卡住
    在这里插入图片描述

  3. 原因是jenkins不能正常退出,通过高级设置在pty(伪中断)执行构建成功了,但是实际服务器也没有启动
    在这里插入图片描述

  4. 查找说需要用nohup 执行.sh脚本脚本才可以,所以问题又回到了最初的脚本执行权限问题

  5. 去掉之前勾选的pty,通过chmod a+x filename给脚本赋予可执行权限可解决Permission denied问题,但是又出现了.sh脚本文件的 No such file or directory问题
    在这里插入图片描述

  6. 经过查找是因为.sh脚本编码问题,因为是在window下写的脚本,编码是doc,需要改为unix才可以

# 确保文件有可执行权限,给所有用户给予该文件可执行权限
chmod a+x filename
# 修改文件
vi filename
# 查看文件格式
:set ff 
# 修改文件格式
:set ff=unix 
# 保存并退出
:wq
  1. 终于成功
  2. 由于不在pty环境,所以执行脚本没加nohup也没有影响
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Jenkins是一个开源的持续集成工具,可实现自动化构建、测试和部署。Spring Boot是一个基于Spring框架的轻量级Web应用开发框架,提供了快速构建Web应用的开发环境。Maven是一个基于项目对象模型(POM)的项目管理工具,可用于构建、依赖管理和部署。SVN是一种源代码管理工具,可用于协作开发和版本控制。 将这些工具组合起来,可实现一键打包发布。首先,在Jenkins中创建一个新的构建项目,并选择Maven项目类型。然后,配置SVN源代码管理,在构建触发器中设置定时执行构建任务。接着,在Maven构建中设置pom.xml文件路径和构建命令,确保能够成功构建Spring Boot应用程序。最后,将打包后的应用程序上传到远程服务器,并启动应用程序部署脚本。 通过这个过程,我们可以实现自动化构建、测试和部署,简化部署流程并提高生产效率。同时,通过与Jenkins、Spring Boot、MavenSVN的结合,可以实现更完整的持续集成和持续交付过程。 ### 回答2: Jenkins、Spring Boot、MavenSVN 都是非常流行的开发工具和框架。其中,Jenkins 是一个开放源代码的自动化部署工具,它可以自动构建、测试和部署软件。Maven 是一个对象中心的开发工具,它可以自动编译、测试和部署软件。Spring Boot 是一个开发框架,它可以轻松地构建和部署 Web 应用程序。而 SVN 则是一个用于版本控制的工具,它可以帮助开发人员协同工作,追踪历史记录等。 对于这种情况,我们可以使用 Jenkins 进行自动化部署和打包发布。下面是该过程的步骤: 1. 安装 Jenkins:首先,你需要安装 Jenkins。可以通过下载 Jenkins 的最新版本来安装它。 2. 配置 Maven:在 Jenkins 中,你需要配置 Maven。在 Jenkins 主页的“Manage Jenkins”选项中,可以找到“Global Tool Configuration”菜单。你需要在这里配置 Maven,包括指定 Maven 的路径和版本。 3. 配置构建步骤:在 Jenkins 中,你可以配置构建步骤。在此处你可以通过选择“构建一个 Maven 项目”选项并指定相关的 Maven 工程,然后再指定命令执行变量等。 4. 编写脚本:Jenkins 支持脚本编写,你可以通过写 shell 脚本或者 Windows 批处理来执行构建和部署操作,指定 Maven 打包的相关参数,自动化编译打包、部署到服务器等操作。 5. 配置 SVNJenkins 配置 SVN 的方式也非常简单,在 Jenkins 主页中,你可以通过创建装载 SVN 仓库的插件配置 SVN。 6. 执行自动化部署:最后,你需要执行自动化部署。你可以在 Jenkins 中添加定时任务或在被检测到有 SVN 代码提交后进行自动化的部署。 总之,使用 Jenkins 自动化部署的好处在于,它可以大大提高开发效率,减少手动操作,降低出错率,并且它可以随时进行监控和定位问题,有效的提高项目的质量,降低运维成本。 ### 回答3: Jenkins是一个开源的自动化部署工具,可以非常方便地实现一键打包、构建和发布。在使用Jenkins进行springboot maven svn部署时,需要进行如下几个步骤: 1. 安装Jenkins 首先需要在服务器上安装JenkinsJenkins支持多种操作系统,可以根据具体情况进行选择安装方法。 2. 安装必要的插件 需要在Jenkins中安装必要的插件,主要包括Maven Integration plugin、Subversion plugin、Deploy plugin等,这些插件将帮助我们实现源代码的管理、打包构建以及自动部署。 3. 配置JenkinsJenkins配置SVNMaven的信息,包括源代码地址、Maven路径等。 4. 编写自动化脚本 根据实际需求,编写自动化脚本来实现构建、测试、打包以及部署,这些脚本可以使用Jenkins提供的Pipeline语法或者其他脚本语言来编写。 5. 执行构建任务 在Jenkins界面上,选择需要构建的项目,点击构建即可,Jenkins将根据自动化脚本执行编译、测试、打包和部署。 6. 验证部署结果 在Jenkins上查看构建结果,如果成功,则可以上线进行测试。如果失败,则需要查看详情并进行修复,以便下次构建成功。 总之,使用Jenkins进行springboot maven svn部署,可以大大提高开发效率,减少手动部署的工作量,不仅在测试、集成和部署等方面提供了更好的支持,还有利于提高应用程序的质量和性能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值