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

作者: 小阳撒 | 来源:发表于2017-01-19 13:33 被阅读255次

    开始

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

    参考tomcat配置

        <Connector port="18080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" URIEncoding="UTF-8" />
    
    ... ...
    <Host name="localhost"  appBase="/home/wwwroot/jenkins"
                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

    Maven Integration pluginMaven Integration plugin

    Filter:输入publish
    安装:Publish Over SSH

    Publish Over SSHPublish Over SSH

    Filter:输入email
    安装:Email Extension Plugin

    Email Extension PluginEmail Extension Plugin

    系统配置:

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

    填入管理员邮箱填入管理员邮箱

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

    Extended E-mail NotificationExtended 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

    Publish over SSHPublish over SSH
    最后test configuration 链接成功就ok

    Global Tool Configuration配置

    系统管理->Global Tool Configuration

    Maven Configuration

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


    Maven ConfigurationMaven Configuration

    配置服务器已安装jdk

    jdkjdk

    maven 目录

    mavenmaven

    新建一个构建发布任务

    构建发布任务构建发布任务

    选择ok
    进入配置:


    输入图片说明输入图片说明 输入图片说明输入图片说明
    输入图片说明输入图片说明 输入图片说明输入图片说明

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

        本文链接:https://www.haomeiwen.com/subject/bwdibttx.html