• 通过Jenkins部署java项目


    部署java项目-创建私有仓库

    Jenkins大多数情况下都是用来部署Java项目,Java项目有一个特点是需要编译和打包的,一般情况下编译和打包都是用maven完成,所以系统环境中需要安装maven。

    本次实验,我们采用git私有仓库的形式,涉及到配置密钥,以zrlog来作为本次实验需要部署的java项目。

    实验环境:

    • 192.168.77.128 作为项目的线上服务器,具有JDK1.8+Tomcat8.5环境
    • 192.168.77.130 Jenkins服务器

    准备工作:

    • 自行在免费的代码托管平台申请一个私有的git仓库,我这里使用的是国内的一个免费托管平台:码云
    • 生成密钥对,把公钥放到git服务端,也就是配置仓库的密钥认证,常规操作就不演示了

    克隆创建好的私有仓库:

    [root@server ~]# cd /home/
    [root@server /home]# git clone git@gitee.com:Zero-One/Test-Zrlog.git
    [root@server /home]# cd Test-Zrlog/
    [root@server /home/Test-Zrlog]# ls
    README.md
    [root@server /home/Test-Zrlog]# vim README.md  // 随便更改一下内容
    [root@server /home/Test-Zrlog]# git add .
    [root@server /home/Test-Zrlog]# git commit -m "first"
    [root@server /home/Test-Zrlog]# git push

    push成功则代表没问题。


    部署java项目-下载zrlog源码

    下载zrlog的源码,并解压:

    [root@server /home/Test-Zrlog]# cd ../
    [root@server /home]# wget https://codeload.github.com/94fzb/zrlog/zip/master
    [root@server /home]# du -sh master 
    2.1M    master
    [root@server /home]# unzip master

    然后把解压后的文件都移到git仓库里,并提交到远程仓库上:

    [root@server /home]# mv zrlog-master/* Test-Zrlog/
    mv: overwrite ‘Test-Zrlog/README.md’? y
    [root@server /home]# cd Test-Zrlog/
    [root@server /home/Test-Zrlog]# git add .
    [root@server /home/Test-Zrlog]# git commit -m "zrlog source"
    [root@server /home/Test-Zrlog]# git push

    配置tomcat

    在线上服务器上需要安装好jdk + tomcat,其中jdk最好不要使用openjdk,使用openjdk容易出问题,我这里使用的jdk版本为1.8,tomcat版本则为8.23。

    准备好JDK+Tomcat环境并且Tomcat能够正常服务后,还需要配置Tomcat的用户文件:

    [root@client ~]# vim /usr/local/tomcat/conf/tomcat-users.xml  # 在文件末尾加入以下内容
        <role rolename="admin"/>  # role配置角色
        <role rolename="admin-gui"/>
        <role rolename="admin-script"/>
        <role rolename="manager"/>
        <role rolename="manager-gui"/>
        <role rolename="manager-script"/>
        <role rolename="manager-jmx"/>
        <role rolename="manager-status"/> 
        <user name="admin" password="your_password" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />  # user配置用户及用户的角色
    </tomcat-users>  # 注意以上内容是写在tomcat-users标签内的

    接着配置Tomcat的Context文件,只需要配置白名单ip即可,不然默认只允许本地ip访问:

    [root@client ~]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
    <Context antiResourceLocking="false" privileged="true" >
      <Valve className="org.apache.catalina.valves.RemoteAddrValve"
             allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1|192.168.77.*" />  # 这里可以根据你自己的机器ip进行配置
      <Manager sessionAttributeValueClassNameFilter="java.lang.(?:Boolean|Integer|Long|Number|String)|org.apache.catalina.filters.CsrfPreventionFilter$LruCache(?:$1)?|java.util.(?:Linked)?HashMap"/>
    </Context>

    完成以上编辑后,重启tomcat:

    [root@client ~]# sh /usr/local/tomcat/bin/shutdown.sh
    [root@client ~]# sh /usr/local/tomcat/bin/startup.sh

    打开浏览器进入到Tomcat的web页面,然后点击 “manager webapp” 进入到管理页面:
    通过Jenkins部署java项目
    通过Jenkins部署java项目

    然后会进入到管理页面:
    通过Jenkins部署java项目

    在这个页面我们可以对发布的web项目进行管理,而且Jenkins也需要通过这个管理页面的接口来发布我们的Java项目,所以才需要配置这个管理页面的用户及白名单ip。


    部署java项目-安装maven

    因为我们需要通过maven来帮我们编译并打包Java项目,所以这一步是安装好maven,注意这一步是在Jenkins服务器上完成的,官网下载地址:

    https://maven.apache.org/download.cgi

    下载并解压:

    [root@client ~]# cd /usr/local/
    [root@client /usr/local]# wget  http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz
    [root@client /usr/local]# tar -zxvf apache-maven-3.5.2-bin.tar.gz 
    [root@client /usr/local]# rm -rf apache-maven-3.5.2-bin.tar.gz
    [root@client /usr/local]# ls apache-maven-3.5.2/
    bin  boot  conf  lib  LICENSE  NOTICE  README.txt
    [root@client /usr/local]# apache-maven-3.5.2/bin/mvn --version
    Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T15:58:13+08:00)
    Maven home: /usr/local/apache-maven-3.5.2
    Java version: 1.8.0_111, vendor: Oracle Corporation
    Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre
    Default locale: zh_CN, platform encoding: UTF-8
    OS name: "linux", version: "3.10.0-327.el7.x86_64", arch: "amd64", family: "unix"
    [root@client /usr/local]# 

    安装完成后,到Jenkins的web页面上进行配置,jenkins页面 -> 系统管理 -> 全局工具配置:

    先配置maven的setting.xml文件的路径:
    通过Jenkins部署java项目

    然后往下拉,找到Maven那一栏,配置maven的安装路径:
    通过Jenkins部署java项目
    通过Jenkins部署java项目

    点击 “Saven” 之后,我们的maven也就配置完了


    安装插件

    系统管理 -> 管理插件,检查是否已经安装 Maven Integration和 Deploy to container,若没有安装则需要安装这两个插件:

    • 安装Maven Integration:
      通过Jenkins部署java项目

    • 安装Deploy to container:
      通过Jenkins部署java项目

    安装完成:
    通过Jenkins部署java项目

    Maven Integration是用于构建Maven项目的,而Deploy to container则是用于发布远程war包的。

    如果没有安装Maven Integration的话,构建任务时是没有Maven项目的选项的:
    通过Jenkins部署java项目

    重启Jenkins服务:

    systemctl restart jenkins

    然后点击 “新建任务” ,这时会发现多了一个Maven项目的选项,这就证明maven插件安装成功了:
    通过Jenkins部署java项目


    构建job

    点击 “新建任务” ,创建一个Maven项目:
    通过Jenkins部署java项目

    填写项目信息:
    通过Jenkins部署java项目

    源码管理,配置远程的私有git仓库:
    通过Jenkins部署java项目
    通过Jenkins部署java项目
    通过Jenkins部署java项目

    构建触发器、构建环境、Pre Steps这几项保持默认节即可,

    然后配置Build那一栏,Build的过程是在编译源码并打包:
    通过Jenkins部署java项目

    接下来的Post Steps以及构建设置这两项也保持默认。

    构建后操作需要配置,这一步我这里目前只是配置一下邮件通知,目的是先进行测试能否成功构建Maven项目,测试成功后一会再配置发布war包:
    通过Jenkins部署java项目
    通过Jenkins部署java项目

    配置完保存之后,就可以点击立即构建来构建这个maven项目了,我这里是构建成功的:
    通过Jenkins部署java项目

    而且邮箱也成功收到了邮件通知:
    通过Jenkins部署java项目

    这时进入控制台输出页面,由于是第一次构建Maven的项目,所以会看到下载了很多Maven相关的东西:
    通过Jenkins部署java项目

    而第二、第三次构建Maven的项目就不会再下载这么多东西了,如上我们的测试构建Maven项目就成功了,接下来就可以远程发布war包了。


    发布war包

    回到项目的配置,在构建后操作那一栏点击 “增加构建后操作步骤” 选择 “Deploy war/ear to a container” :
    通过Jenkins部署java项目

    Containers选择Tomcat 8.x,Tomcat URL填写要把war包发布到的那台机器的url:
    通过Jenkins部署java项目
    通过Jenkins部署java项目

    Credentials这里需要点击右侧的Add,添加用户名和密码:
    通过Jenkins部署java项目
    通过Jenkins部署java项目

    配置完之后点击保存即可。

    然后就可以构建任务了,我这里是构建成功的:
    通过Jenkins部署java项目

    并且也收到了邮件通知:
    通过Jenkins部署java项目

    这时候到目标机器上,看看war包是否已发布到tomcat上了:

    [root@client ~]# ls /usr/local/tomcat/webapps/
    docs  examples  host-manager  manager  ROOT  zrlog-1.9.0  zrlog-1.9.0.war
    [root@client ~]# 

    如上,可以看到war已成功发布到tomcat上了。

    浏览器上也成功登录了zrlog:
    通过Jenkins部署java项目

    到此为止,我们的Java项目就发布成功了。

  • 相关阅读:
    读取 classes下的配置文件
    java中Class.getResource用法(用于配置文件的读取)
    windows 中 到底是用的哪个java.exe??? 删除了PATH变量的Java设置还是可以运行java.exe windows/system32
    mysql中null与“空值”的坑
    innodb架构理解
    mysql5.7性能提升一百倍调优宝典
    servlet 3.0笔记之servlet的动态注册
    前端性能优化建议
    了解CSRF攻击原理和预防
    vue的热更新配置
  • 原文地址:https://www.cnblogs.com/weifeng1463/p/9118725.html
Copyright © 2020-2023  润新知