服务器远程发布,jenkins构建Maven项目远程发布到服务器

开始

https://jenkins.io/ 到官网直接下载个最新版本的war包

服务器搭建tomcat,将jenkins.io 丢到tomcat 的发布目录:

参考tomcat配置

connectionTimeout="20000"

redirectPort="8443" URIEncoding="UTF-8" />

... ...

unpackWARs="true" autoDeploy="true">

... ...

jenkins.war 放置目录

[root@localhost jenkins]# pwd

/home/wwwroot/jenkins

[root@localhost jenkins]# ls

jenkins jenkins.war

启动tomcat

访问 http://[ip]:18080/jenkins/

安装必要的插件

系统管理->管理插件->可选插件

Filter:输入maven

安装:Maven Integration plugin

9a073d110cf839ef9a9143439d398b0e.png

Maven Integration plugin

Filter:输入publish

安装:Publish Over SSH

629856b8a2732a7aadd6fc5d384e26ad.png

Publish Over SSH

Filter:输入email

安装:Email Extension Plugin

61115cb1a0d2a8cb192f203d4ee8ceea.png

Email Extension Plugin

系统配置:

Jenkins Location->系统管理员邮件地址 填入管理员邮箱;

0c00e254947a021ef29bc96bbde913ea.png

填入管理员邮箱

Extended E-mail Notification配置我这里以QQ邮箱为例:

04ea75d7e251d5184781b11eccfcdc0a.png

Extended E-mail Notification

注意:邮箱记得打开smtp 服务

jdk1.8下有可能报错:

javax.mail.MessagingException: Could not connect to SMTP host: smtp.***.com, port: 465;

... ...

第一种解决方法:

导入证书

$JAVA_HOME/bin/keytool -import -alias mail.****.com -file mail.****.com.cer -keystore $JAVA_HOME/jre/lib/security/cacerts

测试链接

java SSLPoke smtp.*****.com 465

第二种解决方法

%JAVA_HOME%/jre/lib/security

替换jdk1.8下的两个包

Publish over SSH

a411c025a3fca97208284b9aa9b5fa4a.png

Publish over SSH

最后test configuration 链接成功就ok

Global Tool Configuration配置

系统管理->Global Tool Configuration

Maven Configuration

我这里直接配置服务器安装好的setting.xml

a194382053da6c0c11e4bd1b5554c7be.png

Maven Configuration

配置服务器已安装jdk

4ce836dbc86d47276ed64840da841284.png

jdk

maven 目录

45fa09192d3fb6bfa50ad45f01a9dae3.png

maven

新建一个构建发布任务

ece9429a0c6217184dc60fcf3f99abb1.png

构建发布任务

选择ok

进入配置:

d4837e9f0dbc37112e036e235dabb109.png

ef53cf61ef1069c56fbaf5ee909587e4.png

输入图片说明

560dc1bceae66e6559021fe22ad35810.png

输入图片说明

460eec8dbed39f0b32aab280dbe71a70.png

输入图片说明

a632ab8061e7240533e8826c96464b9f.png

输入图片说明

这里有个远程服务器执行的shell,放在远程服务器上,需要加上 BUILD_ID=DONTKILLME 防止停止构建之后中断执行shell。shell主要是完成 复制上传的war包到tomcat下的目录,然后重启tomcat,下面我给出简单示例:

#!/bin/sh

projname=项目名字

deployPath=/home/webroot/default

tomcatUnzipPath=/home/webroot/[tomcat解压路径]/

uploadPath=/[war 上传路径]/${projname}.war

restartShell="[tomcat 重启脚本]"

if [ -f "${uploadPath}" ]; then

rm -f ${deployPath}/${projname}.war

cp ${uploadPath} ${deployPath}/${projname}.war

rm -rf ${tomcatUnzipPath}

#重启jetty

echo ${restartShell}

${restartShell}

else

echo "war 包不存在"

exit 1

fi

echo "success"

exit 0

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值