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

开始

https://jenkins.io/ 到官网直接下载个最新版本的war包
服务器搭建tomcat,将jenkins.io 丢到tomcat 的发布目录:

参考tomcat配置

    

... ...

... ...

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

Maven Integration plugin
Maven Integration plugin

Filter:输入publish
安装:Publish Over SSH

Publish Over SSH
Publish Over SSH

Filter:输入email
安装:Email Extension Plugin

Email Extension Plugin
Email Extension Plugin

系统配置:

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

jenkins构建Maven项目远程发布到服务器_第1张图片
填入管理员邮箱

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

jenkins构建Maven项目远程发布到服务器_第2张图片
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

第二种解决方法

下载 jce-7

%JAVA_HOME%/jre/lib/security

替换jdk1.8下的两个包
Publish over SSH

jenkins构建Maven项目远程发布到服务器_第3张图片
Publish over SSH

最后 test configuration 链接成功就ok

Global Tool Configuration配置

系统管理->Global Tool Configuration

Maven Configuration

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


jenkins构建Maven项目远程发布到服务器_第4张图片
Maven Configuration

配置服务器已安装jdk

jenkins构建Maven项目远程发布到服务器_第5张图片
jdk

maven 目录

jenkins构建Maven项目远程发布到服务器_第6张图片
maven

新建一个构建发布任务

jenkins构建Maven项目远程发布到服务器_第7张图片
构建发布任务

选择ok
进入配置:


jenkins构建Maven项目远程发布到服务器_第8张图片
输入图片说明
jenkins构建Maven项目远程发布到服务器_第9张图片
输入图片说明

jenkins构建Maven项目远程发布到服务器_第10张图片
输入图片说明
jenkins构建Maven项目远程发布到服务器_第11张图片
输入图片说明

这里有个远程服务器执行的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

参考:
Jenkins-邮箱配置及问题解决
解决jdk1.8中发送邮件失败(handshake_failure)问题

你可能感兴趣的:(jenkins构建Maven项目远程发布到服务器)