java项目代码上线

 

1:java项目代码上线架构图

ip地址及主机名规划

10.0.0.11 deploy

10.0.0.12 tomcat-web01

10.0.0.13 git.oldboyedu.com

资料包下载地址:链接:https://pan.baidu.com/s/1YIgnUOkWLtp-LoQpIt-qVg  提取码:mpjb

2:部署gitlab服务器并上传代码

wget https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.4.5-ce.0.el7.x86_64.rpm

yum localinstall gitlab-ce-11.4.5-ce.0.el7.x86_64.rpm -y

vim /etc/gitlab/gitlab.rb

external_url 'http://git.oldboyedu.com'

gitlab-ctl reconfigure

上传项目代码到gitlab

rz jeesns.tar.gz

tar xf jeesns.tar.gz

cd jeesns/

rm -fr .git*

git init

git remote add origin http://git.oldboyedu.com/root/jeesns.git

git add *

git commit -m '初始提交'

git push -u origin master

3:部署tomcat服务器和数据库

rz jdk-8u102-linux-x64.rpm

rz apache-tomcat-8.0.27.tar.gz

rpm -ivh jdk-8u102-linux-x64.rpm

mkdir /application/

tar zvxf apache-tomcat-8.0.27.tar.gz -C /application/

mv /application/apache-tomcat-8.0.27 /application/tomcat

#tomcat启动加速的方法

vim /usr/java/jdk1.8.0_102/jre/lib/security/java.security

修改117行为:securerandom.source=file:/dev/urandom

/application/tomcat/bin/startup.sh

为项目准备好数据库jeesns,设置数据库root用户密码为root

yum install  mariadb-server -y

mysql_secure_installation

mysqladmin -uroot password 'root'

mysql -uroot -proot -e 'create database jeesns;'

4:安装maven

rz jdk-8u102-linux-x64.rpm

rpm -ivh jdk-8u102-linux-x64.rpm

wget https://mirror.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz

tar xf apache-maven-3.6.0-bin.tar.gz

mv apache-maven-3.6.0 /usr/local/

ln -s /usr/local/apache-maven-3.6.0 /usr/local/maven

vim /etc/profile

export M2_HOME=/usr/local/maven

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

source /etc/profile

mvn -v

5:编译和部署(上线)

a:代码拉取

#需要在gitlab中添加密钥对

git clone git@git.oldboyedu.com:root/jeesns.git

b:编译项目代码

cd jeesns/

mvn clean package

c:数据库升级

yum install sshpass -y

sshpass -p123456 scp /opt/jeesns/jeesns-web/database/jeesns.sql root@10.0.0.12:/tmp

sshpass -p123456 ssh root@10.0.0.12 'mysql -uroot -proot jeesns </tmp/jeesns.sql'

d:远程推送war包

sshpass -p123456 ssh root@10.0.0.12 'mv /application/tomcat/webapps/* /opt'

sshpass -p123456 scp -rp /opt/jeesns/jeesns-web/target/jeesns-web.war 10.0.0.12:/application/tomcat/webapps/ROOT.war

测试访问:

把上面的第五步(编译和部署)用shell脚本来实现,这个脚本就是shell自动化上线脚本

把上面的第五步用jenkins来实现,即jenkins+gitlab代码自动上线。

java项目代码上线的更多相关文章

  1. Scala IDEA for Eclipse里用maven来创建scala和java项目代码环境(图文详解)

    这篇博客 是在Scala IDEA for Eclipse里手动创建scala代码编写环境. Scala IDE for Eclipse的下载.安装和WordCount的初步使用(本地模式和集群模式) ...

  2. 用maven来创建scala和java项目代码环境(图文详解)(Intellij IDEA(Ultimate版本)、Intellij IDEA(Community版本)和Scala IDEA for Eclipse皆适用)(博主推荐)

    不多说,直接上干货! 为什么要写这篇博客? 首先,对于spark项目,强烈建议搭建,用Intellij IDEA(Ultimate版本),如果你还有另所爱好尝试Scala IDEA for Eclip ...

  3. Jenkins+Gradle+Sonar进行Java项目代码分析

    Jenkins+Maven+Sonar与Jenkins+Gradle+Sonar配置方法很相似,区别就是Java项目所用的编译工具不同,一个是maven,一个是gradle 使用maven编译工具的可 ...

  4. Jenkins与网站代码上线解决方案

    1.1 前言 Jenkins是一个用Java编写的开源的持续集成工具.在与Oracle发生争执后,项目从Hudson项目独立. Jenkins提供了软件开发的持续集成服务.它运行在Servlet容器中 ...

  5. Jenkins与网站代码上线解决方案【转】

    转自 Jenkins与网站代码上线解决方案 - 惨绿少年 https://www.nmtui.com/clsn/lx524.html 1.1 前言 Jenkins是一个用Java编写的开源的持续集成工 ...

  6. Linux实战教学笔记41:企业级SVN版本管理与大型代码上线方案

    第1章 SVN服务实战应用指南 1.1 SVN介绍 1.1.1 什么是SVN(Subversion)? Svn(subversion)是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN ...

  7. 企业SVN版本管理与代码上线方案

    1.SVN服务实战 1) 什么是SVN(Subversion)? Svn(subversion)是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个跨平台的开源的版本控制系统.Sv ...

  8. SVN版本管理与大型代码上线方案(一)

    SVN版本管理与大型代码上线方案(一) 链接:https://pan.baidu.com/s/1A3Iq3gGkGS27L_Gt37_I0g 提取码:ncy2 复制这段内容后打开百度网盘手机App,操 ...

  9. Spring Boot框架开发的Java项目在CentOS7上的部署

    需求:上级拿来一份Spring Boot框架开发的Java项目代码让我在服务器上运行起来,只说了一句该框架是自带了Tomcat(不用重新安装Tomcat),一份代码下有两个项目(一个管理端项目,一个用 ...

随机推荐

  1. MySQL之Prepared Statements

    1.概述 prepared statement在MySQL4.1中引进并且增加了一些新的命令: COM_STMT_PREPARE COM_STMT_EXECUTE COM_STMT_CLOSE COM ...

  2. js中绑定事件处理函数,使用event以及传递额外数据

    IE8中使用attachEvent绑定事件处理函数时,不能直接向event 对象添加数据属性.可以用属性复制的方法,包装新的event对象. 1. 属性复制var ObjectExtend = fun ...

  3. "人工智能",你怕了吗?

    近期“人工智能+”,已经是市场上非常火的一个风口,人工智能已经渗透到人类生活的方方面面,服务于我们的生活.但是人工智能的迅速发展,也引起了我的担忧,一系列科技电影展示出来的人工智能奴役人类的场景,让人 ...

  4. unsupervised learning: clustering介绍

    unsupervised learning 上面是监督学习与无监督学习的比较,监督学习的training set是一组带label(y)的训练集,而无监督学习不带有label(y). 上图中的监督学习 ...

  5. Linux命令基础6-mkdir命令

    mkdir是英文单词make directory的缩写.mkdir就是用来创建路径,一般就是用来创建文件夹的. 语法 mkdir (选项)(参数) 选项 -Z:设置安全上下文,当使用SELinux时有 ...

  6. c语言中字符串转数字的函数

    ANSI C 规范定义了 atof().atoi().atol().strtod().strtol().strtoul() 共6个可以将字符串转换为数字的函数,大家可以对比学习.另外在 C99 / C ...

  7. 无向图的割点和桥 tarjan 模板

    #include <bits/stdc++.h> using namespace std; const int MAXN = 20005; const int MAXM = 100005; ...

  8. python字符串、字符串处理函数及字符串相关操作

    python字符串.字符串处理函数及字符串相关操作 字符串介绍 python字符串表示 Python除处理数字外还可以处理字符串,字符串用单撇号或双撇号包裹: >>> 'spam e ...

  9. 002——转载Excel2010分成两个或者多个独立窗口

    在借鉴了很多个baidu方法之后,使用修改注册表之后我的Excel终于可以独立窗口出来了.转自:www.xuexila.com/excel/2010/2051008.html方法如下: 本操作需要修改 ...

  10. info命令

    info命令也可以查看命令的信息,但是和man命令不同,info命令如同一本书,一个命令只不过是书中的一个章节. 1.基本结构: 输入:info ls ls命令只不过是整个文档的10.1章节. 而在章 ...