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. vi / vim 字符替换详解

    :s/idoxu/isTester.com/g 替换当前行所有 idoxu 为 isTester.com :n,$s/idoxu/isTester.com/ #替换第 n 行开始到最后一行中每一行的第 ...

  2. 采用MySQL-MMM做DB高可用时,遇到的一个小坑

    一.服务器分布   二.MySQL-MMM 配置 (1).公共配置[所有DB节点:Master1.Master2.Slave1.Slave2   Monitor节点] # vim /etc/mysql ...

  3. 利用 Create React Native App 创建 React Native 应用

    $ npm i -g create-react-native-app $ create-react-native-app my-project $ cd my-project $ npm start

  4. CentOS7怎样安装MySQL5.7.22

    wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm下载mysql源安装包 yum install mysq ...

  5. python统计代码总行数(代码行、空行、注释行)

    我们在工作或学习代码的过程中,经常会想知道自己写了多少行代码,今天在项目环境写了个脚本统计了项目代码的数量. 功能: 1.统计代码总行数 2.统计空行数 3.统计注释行数 # coding=utf-8 ...

  6. Nmap扫描工具实验报告

    实验报告 实验内容 通过ping进行操作系统探测 利用Zenmap/Nmap进行TCP connet扫描.TCP SYN扫描和操作系统扫描 实验目的 了解扫描的一般步骤 熟练使用ping命令并能够进行 ...

  7. Spring源码窥探之:Spring AOP初步使用

    AOP即面向切面编程.它的底层实际是用了spring的动态代理,具体是JDK的代理还是CGLIB的代理,就视情况而定了.本博客园仅仅作为平时记录,显得有些杂乱无章,如果想了解动态代理,设计模式,请访问 ...

  8. linux第三天

    一.用户的类型   1.root管理员:所有权限(r w x)   2.文件拥有者(u):谁创建谁拥有   3.组 (g):用户组   4.其它用户(o):不属于用户组,也不是文件的创建者,不是管理员 ...

  9. 应该知道的linux命令

    常用命令 1.在compose Bar下可以对多个服务器同时进行操作.选择To All Sessions 2. 查看JAVA进程: ps -ef | grep java ps auxf | grep ...

  10. 华硕ASUS U5800GE驱动

    重要的触摸板 微软商店 ASUS Keyboard Hotkeys 设备管理器 人体学输入设备 ASUS Precision Touchpad (ScreenPad) Asus ScreenPad D ...