一、环境准备

1、git安装环境 参考链接 https://www.cnblogs.com/yuarvin/p/12500038.html

2、maven安装环境,包括jdk环境安装 参考链接 https://www.cnblogs.com/yuarvin/p/7837963.html

3、Jenkins 安装环境 参考链接 https://www.cnblogs.com/yuarvin/p/12499172.html

二、jenkins 插件安装

如本次需要的插件如下:

  • git:用于拉取git分支代码到jenkins服务器工程目录
  • Maven Integration plugin : 用于构建打包maven工程项目
  • git parameter:用于参数化构建时选择分支。
  • Publish Over SSH:用于上传jar包和操作tomcat
  • pscp :用于windows把文件上传到远程服务器linux上

Global Tool Configuration

1、maven默认配置

  

2、JDK配置

 

3、git配置

  

4、maven自定义配置

  

Configure System

1、进入以后只配置Publish over SSH,在系统设置添加要连接的linux服务器,使用用户名和密码验证,不需要私钥和公匙。并在高级里点击test是否成功

2、点击test configuration 测试成功后点击保存。ssh默认连接端口是22

构建任务

1、点击 新建Item 按钮,进入构建引导,构建一个maven工程项目

2、进入构建配置设置

项目描述

源码管理

Repository URL

  

Credentials 凭据

  

指定拉取git分支,目前默认是master

  

触发器设置

  

建设环境

  

构建前操作配置以及构建设置,可以指定本地maven的仓库,构建时优先从本地仓库中拉取jar包

构建成功后,先把构建的jar包上传到linux服务器,然后启动对应的jar服务

echo "开始上传文件"
cd D:\Program Files (x86)/Jenkins
D:
pscp -l root -pw root -r workspace/springSecurity/target/sercurityOauth-0.0.1-SNAPSHOT.jar root@192.168.76.128:/usr/local/src/web < confirm.bat
echo "上传文件成功"
exit
cd /usr/local/src/web
ps axu | grep sercurityOauth-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}' | xargs kill -9
nohup /usr/local/jdk1.8.0_201/bin/java -jar /usr/local/src/web/sercurityOauth-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev >sercurityOauth-0.0.1-SNAPSHOT.log 2>&1 &
echo "启动完成"

putty插件

参考链接:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

1、pscp.exe需要放入到C:\Windows\System32和jenkins安装目录

 

2、远程启动linux服务器的构建安装包jar,需要指定jdk的java命令,如

nohup /usr/local/jdk1.8.0_201/bin/java -jar *.jar

开始构建

1、点击 bulid now后,进入工作空间,可以看到项目内容

2、在控制台输出可以看到构建日志

3、构建历史

windows 安装 jenkins 自动化构建部署至linux服务器上的更多相关文章

  1. springboot 定时任务部署至linux服务器上后会执行两次问题

    springboot定时任务在本地运行时,正常执行且只执行一次,但是在maven打包成war包,部署至linux服务器上之后,定时任务奇怪的执行了两次. 由于未做负载均衡,所以可以先排除是因为多台服务 ...

  2. ireport部署到Linux服务器上遇到的问题解决

    ireport报表在本地Windows环境运行正常,一旦部署到Linux环境上出现了如下问题: 1.打开报表,后台直接报net.sf.jasperreports.engine.util.JRFontN ...

  3. 把 web 项目部署到 Linux 服务器上

    1.打开 eclipse,在已经完成的 web 项目上面点击右键,选择 export,然后选择导出成 war 包. 以部署 SMBMS 项目为例   2.项目打包成 war ,选择项目导出到的位置. ...

  4. .NET跨平台之旅:将QPS 100左右的ASP.NET Core站点部署到Linux服务器上

    今天下午我们将生产环境中一个单台服务器 QPS(每秒请求数)在100左右的 ASP.NET Core 站点部署到了 Linux 服务器上,这是我们解决了在 .NET Core 上使用 EnyimMem ...

  5. JenKins自动化构建部署流程参考

    Jenkins工作流程 程序员提交代码到Git/SVN仓库,触发钩子程序向 JenKins 进行通知,Jenkins 调用Git/SVN插件获取源码,调用Maven打包为war包,调用Deploy t ...

  6. 案例 (一)如何把python项目部署到linux服务器上

      一.背景 用Python写了个脚本,需要部署到Linux环境的服务器上,由于服务器linux系统(centos,redhat等)自带的是python2,现在的python萌新都是从python3开 ...

  7. springboot打成Jar包后部署至Linux服务器上

    下面主要记录一下springboot打包成jar包在Linux服务上部署的步骤: 1.通过WinSCP,将相应的Jar文件,复制到Linux指定目录下,如/home/ 2.打开ssh,进入/home目 ...

  8. openfire源码修改后如何打包部署到linux服务器上

    原文:http://blog.csdn.net/jinzhencs/article/details/50457152 1.linux版本的3.10.3解压部署启动(过程略,参考我的另一篇博文http: ...

  9. 简单将Springboot项目部署到linux服务器上

    1.使用springboot的jar包方式 直接使用maven工具按照步骤点击就可以直接打包 2.到target目录下找到 jar包 3.将jar包放到linux的任意文件夹下(此项目是之前的kafk ...

随机推荐

  1. http协议和网络模型

    传输层    传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输. 在传输层有两个性质不同的协议:TCP(Transmission ControlProtocol,传输控制协议)和 UD ...

  2. 批量修改ACCESS表列名

    问题来源:从ODBC导入数据到ACCESS 再从ACCESS导入到SQL数据库,ACCESS会多带个DBO. 所以需要批量修改ACCESS的表名. 首先需要引用ADOX引用方法:打开ACCESS的VB ...

  3. python可变类型和不可变类型,深拷贝vs浅拷贝

    转载:https://www.cnblogs.com/huamingao/p/5809936.html 核心提示: 可变类型 Vs 不可变类型 可变类型(mutable):列表,字典 不可变类型(un ...

  4. php--0与空的判断

    使用empty()函数判断,两者都是true $a=0; if(trim($a)=="") { echo '数字0'; }

  5. Trie图 模板

    trie图实际上是优化的一种AC自动机. trie图是在trie树上加一些失配指针,实际上是类似KMP的一种字符串匹配算法. 失配指针类似KMP的nx数组,有效地利用了之前失配的信息,优化了时间复杂度 ...

  6. 吴裕雄--天生自然 R语言开发学习:聚类分析(续一)

    #-------------------------------------------------------# # R in Action (2nd ed): Chapter 16 # # Clu ...

  7. 吴裕雄--天生自然KITTEN编程:翻译机

  8. 使用 Hexo 在 GitHub 上建立博客 · Utopia's Daily Note

    使用 Hexo 在 GitHub 上建立博客 # 写在前面 其实我在一月份的就开始写了三篇博客文章,你没有看错,只是写了三篇,然后,就没有然后了.我还在其中一篇文章中写着,不知道自己能够坚持多久.事实 ...

  9. array-2

    数组的基本操作 JS随机操作数组元素 Math.random() 结果为0-1间的一个随机数[0,1) Math.round(num) 参数num为一个数值,函数结果为num四舍五入的整数 Math. ...

  10. Python计算给定日期的周内的某一天

    先理一下思路:1.weekday会根据某个日期返回0到6的一个数字来表示星期几对吧,0==星期一我们来列一个表: [0,1,2,3,4,5,6] 2.知道了星期几之后,你可以计算出那一周相对于这个0到 ...