安装、配置jenkins(CentOS 7 64位)-发布基于Maven+github+jenkins的自动构建项目

1.安装jenkins(准备java环境,必须jdk8及以上)

下载JDK 1.8,上传到centos7系统上

http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz?AuthParam=1538988644_c7f213461e0c9f00c91a6a550db5f831

解压:tar -zxvf jdk-8u181-linux-x64.tar.gz

另存:

  mkdir /usr/local/jdk/

  mv jdk1.8.0_181/* /usr/local/jdk/

配置环境变量:

  vi /etc/profile

    JAVA_HOME=/usr/local/jdk

    JRE_HOME=$JAVA_HOME/jre

    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

    CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/dt.jar

    export JAVA_HOME JRE_HOME PATH CLASSPATH

重新加载环境配置:source /etc/profile


下载jenkins:wget http://mirrors.jenkins.io/war/latest/jenkins.war

后台启动: nohup java -jar jenkins.war --ajp13Port=-1 --httpPort=9999 >temp.txt &

jenkins的docker镜像制作:请见码云 创建jenkins的docker镜像

2. 环境准备

git安装:

  下载安装包:wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz

  依赖包(centos):yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

  依赖包(ubuntu): apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev

            apt-get -y install gcc automake autoconf libtool make

  解压:tar -zxvf git-2.9.5.tar.gz

  进入解压包:cd git-2.9.5

  编译:make prefix=/usr/local/git all

  安装:make prefix=/usr/local/git install

maven安装:

  下载安装包:wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

  解压:tar -zxvf apache-maven-3.3.9-bin.tar.gz

  移到指定目录:mv apache-maven-3.3.9 /usr/local/maven

  配置环境变量:vim /etc/profile

    M2_HOME=/usr/local/maven

    export PATH=${M2_HOME}/bin:${PATH}

  重新加载环境配置:source /etc/profile

3.启动、配置

输入提示路径下的密码,安装默认的插件,设置管理员用户,确定jenkins根路径

【系统管理】->【全局工具配置】:

    

    

    

    

 【系统管理】->【插件管理】:

  【Safe Restart Plugin】  //重启jenkins系统

  【Email Extension Plugin】  //由于Jenkins自带的邮件功能比较鸡肋,因此推荐安装专门的邮件插件

  【maven integration plugin】  //该插件安装了,才能创建maven项目

  【git plugin】  //从远程拉取代码

  【publish over ssh】  //ssh远程登录

  【SSH Plugin】  //SSH登录到一个远程服务器以执行必要的脚本

【系统管理】->【全局安全配置】:

  

  

【系统管理】->【系统设置】:

  【SSH remote hosts】:

  

  【邮件设置】:

    

  【Publish over SSH】:

    

     

  

4.创建构建任务

【新建任务】:

  任务名称->构建maven任务->确认

  

5.手动触发构建

【jenkins主页面】->【相应的构建任务】->【立即构建】

  

注:防火墙的shell命令:

  firewall-cmd --zone=public --add-port=80/tcp --permanent  (--permanent永久生效,没有此参数重启后失效)

  firewall-cmd --reload  重新载入

  firewall-cmd --zone=public --remove-port=80/tcp --permanent  删除

  firewall-cmd --zone=public --query-port=80/tcp  查看

  firewall-cmd --state  查看firewall是否运行

  firewall-cmd --list-services  查看当前开了哪些端口

  firewall-cmd --get-services  查看还有哪些服务可以打开

  firewall-cmd --zone=public --list-ports  查看所有打开的端口

邮箱内容模版(Default Content):

<!DOCTYPE html>    
<html>    
<head>    
<meta charset="UTF-8">    
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>    
</head>    
    
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"    
    offset="0">    
    <table width="95%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">    
        <tr>    
            本邮件由系统自动发出,无需回复!<br/>            
            各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br> 
            <td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>   
        </tr>    
        <tr>    
            <td><br />    
            <b><font color="#0B610B">构建信息</font></b>    
            <hr size="2" width="100%" align="center" /></td>    
        </tr>    
        <tr>    
            <td>    
                <ul>    
                    <li>项目名称 : ${PROJECT_NAME}</li>    
                    <li>构建编号 : 第${BUILD_NUMBER}次构建</li>    
                    <li>触发原因: ${CAUSE}</li>    
                    <li>构建状态: ${BUILD_STATUS}</li>    
                    <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>    
                    <li>构建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>    
                    <li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>    
                    <li>项目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>    
                </ul>    

<h4><font color="#0B610B">失败用例</font></h4>
<hr size="2" width="100%" />
$FAILED_TESTS<br/>

<h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4>
<hr size="2" width="100%" />
<ul>
${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
</ul>
详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>

            </td>    
        </tr>    
    </table>    
</body>    
</html>    

配置模块友情链接:

docker+github+jenkins+maven自动化部署----邮件配置
docker+github+jenkins+maven自动化部署----提交代码到github时自动触发构建任务配置
docker+github+jenkins+maven自动化部署----代码检查和覆盖率检查SonarQube+JaCoCo+Jenkins+Maven配置

****Build a Java app with Maven**** 

原文地址:https://www.cnblogs.com/pascall/p/9724424.html