1,安装 java 运行环境 jre

1,下载

jre 下载地址

选择 linux 版本

一键化部署java应用 一键部署java环境_maven

2,安装

1,将 jar 包上传到 linux
2,解压并剪切到 /usr/local/java 目录

这里的目录可以自定义,不过一般安装软件都会放在该目录下

tail -zxf 压缩包
3,修改环境变量
vim /etc/profile

在文件的末尾新增内容

JAVA_HOME=/usr/local/java
CLASSPATH=$JAVA_HOME/lib
PATH=$PATH:$JAVA_HOME/bin

激活配置(重启也可以)

source /etc/profile

3,测试是否安装成功

java -version

一键化部署java应用 一键部署java环境_java_02

2,安装 java 包管理工具 maven

1,下载

maven下载地址

选择 linux 版本

一键化部署java应用 一键部署java环境_linux_03

2,安装

1,解压文件到 /usr/local/maven 目录
2,添加环境变量
vim /etc/profile

在文件的末尾新增内容

PATH=$PATH:/usr/local/maven/bin

激活配置(重启也可以)

source /etc/profile

3,修改 配置文件

vim /usr/local/maven/conf/settings.xml

修改默认仓库为 阿里的仓库,加快 jar 包的下载速度

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

    <!-- 本地 JAR 包 保存地址 -->
    <localRepository>/usr/local/maven/jar</localRepository>

    <pluginGroups></pluginGroups>
    <proxies></proxies>
    <servers></servers>

    <!-- 远程仓库, 由于国外网络的原因,建议使用阿里云的仓库 -->
    <mirrors>
        <mirror>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
    </mirrors>

    <!-- 配置创建项目的版本默认为 JDK8,默认5 -->
    <profiles>
        <profile>    
            <id>jdk-1.8</id>    
            <activation>    
	        <activeByDefault>true</activeByDefault>    
		    <jdk>1.8</jdk>    
	        </activation>    
		<properties>    
		    <maven.compiler.source>1.8</maven.compiler.source>    
		    <maven.compiler.target>1.8</maven.compiler.target>    
		    <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>    
		</properties>    
        </profile>
    </profiles>
</settings>

4,测试是否安装成功

mvn -v

一键化部署java应用 一键部署java环境_jar_04

3,安装 GIT 客户端

1,采用 yum 安装

yum install -y git

2,监测是否安装成功

git --version

一键化部署java应用 一键部署java环境_maven_05

4,安装 docker

记得安装 docker 的一个辅助工具 docker-compose

5,安装 jenkins

1,安装 http下载工具 wget

已经存在不必安装

yum -y install wget

2,下载安装包

这一步等待时间可能比较长,请耐心等待

wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war

将 war 包移动到 /usr/local/jenkins 目录

mv jenkins.war /usr/local/jenkins/

3,启动 jenkins

cd /usr/local/jenkins/
nohup java -Dhudson.util.ProcessTree.disable=true -jar jenkins.war --httpPort=8431 > jenkins.log 2>&1 &

-Dhudson.util.ProcessTree.disable=true 解决 jenkins 执行 shell 脚本有时候不等待导致失败的问题

4,访问与配置

1,浏览器访问

输入地址:http://192.168.200.102:8431/jenkins 注意修改自己的 ip 地址 和 端口

一键化部署java应用 一键部署java环境_一键化部署java应用_06

2,根据上面的提示获取登入密码
cat /root/.jenkins/secrets/initialAdminPassword

一键化部署java应用 一键部署java环境_java_07

3,选择先不安装插件

选择插件安装

一键化部署java应用 一键部署java环境_linux_08

选择无,在安装

一键化部署java应用 一键部署java环境_linux_09

4,创建用户 jenkins/jenkins

一键化部署java应用 一键部署java环境_java_10

5,修改插件下载地址

1,载入插件文件

点击进入:Jenkins -> Manage Jenkins -> Manage Plugins -> Available,加载出插件

一键化部署java应用 一键部署java环境_jar_11

2,修改服务器端的默认文件
cd /root/.jenkins/updates/

# 注意下面是一条命令,只是比较长
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
3,页面上修改 Update Site 的地址

点击进入:Jenkins -> Manage Jenkins -> Manage Plugins -> Advanced

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

一键化部署java应用 一键部署java环境_maven_12

点击 sumbit 后重启

前端重启方式,直接访问:http://192.168.200.102:8431/restart 注意修改成自己的 ip 和 端口

4,插件的安装方式

Jenkins->Manage Jenkins->Manage Plugins->Available

在搜索框输入检索想要的插件并勾选

一键化部署java应用 一键部署java环境_maven_13

某些插件可能需要重启才能生效

6,构建项目

1,相关插件

1,汉化插件

Localization: Chinese (Simplified)

一键化部署java应用 一键部署java环境_一键化部署java应用_14

该插件会部分汉化 jenkins,使界面展示比较友好

2,凭据插件

Credentials Binding

一键化部署java应用 一键部署java环境_java_15

该插件用来管理凭据(账号,密码),之后可用作 git 账号的管理

3,代码管理插件

Git

一键化部署java应用 一键部署java环境_java_16

2,添加环境变量

1,JDK

Jenkins->Global Tool Configuration->JDK->新增JDK

一键化部署java应用 一键部署java环境_jar_17

2,maven

Jenkins->Global Tool Configuration->Maven-> 新增Maven

一键化部署java应用 一键部署java环境_一键化部署java应用_18

3,找一个 gitee 仓库

最好是 一个 java 的 maven 项目仓库,写上可以访问的控制器,项目大家自由发挥,只要能正常打包和部署就行

4,添加 git 账号密码票据

1,进入凭据界面

一键化部署java应用 一键部署java环境_jar_19

2,点击添加凭据

一键化部署java应用 一键部署java环境_maven_20

3,填写凭据表单

一键化部署java应用 一键部署java环境_linux_21

5,创建一个项目

1,选择自由风格的项目

一键化部署java应用 一键部署java环境_maven_22

2,添加 git 配置

一键化部署java应用 一键部署java环境_maven_23

3,保存后点击构建

点击构建

一键化部署java应用 一键部署java环境_jar_24

点击进入控制台输出,可以看到代码已经从 git 仓库下载到服务器了

一键化部署java应用 一键部署java环境_jar_25

为了确保,我们也可以进入工作目录查看是否真的拉取了代码

cd /root/.jenkins/workspace
ls -l

一键化部署java应用 一键部署java环境_java_26

6,修改配置,让项目编译打包

1,点击配置

一键化部署java应用 一键部署java环境_jar_27

2,添加构建脚本

一键化部署java应用 一键部署java环境_linux_28

书写想要执行的代码,这里的脚本只是做个测试,仅供参考,具体根据自己的业务逻辑

echo "开始构建项目"
mvn install -Dmaven.test.skip=true  
echo "构建项目成功"

echo "启动项目"
if [ -f /root/jar/sql-script.pid ]; then
	PID=$(cat /root/jar/sql-script.pid)
    kill -9 $PID
    rm -rf /root/jar/sql-script.pid
    rm -rf /root/jar/sql-script.jar
fi
mv target/sql-script.jar /root/jar/sql-script.jar
java -jar /root/jar/sql-script.jar &
echo $! > /root/jar/sql-script.pid
echo "项目启动成功"
3,保存后点击构建

可以看到项目已经启动成功

一键化部署java应用 一键部署java环境_maven_29

也可以正常访问,如果不使用 docker,也不需要分布式,到这里也就完成了项目的一键部署

一键化部署java应用 一键部署java环境_jar_30

7,打包 docker 镜像

1,docker 构建脚本

新建两个文件放置到下面的位置

一键化部署java应用 一键部署java环境_jar_31

Dockerfile 内容

FROM openjdk:oraclelinux8
COPY sql-script.jar sql-script.jar
EXPOSE 80
ENTRYPOINT ["java", "-jar", "sql-script.jar"]

docker-compose.yml 内容

version: '3.1'
services:
  tomcat:
    restart: always
    image: springboot-sql-script:hwq
    container_name: sql-script
    ports:
      - 8761:80
2,修改 jenkins 构建脚本
echo "开始构建项目"
mvn install -Dmaven.test.skip=true  
echo "构建项目成功"

rm -rf /root/jar/sql-script.jar
rm -rf /root/jar/Dockerfile
rm -rf /root/jar/docker-compose.yml
cp target/sql-script.jar /root/jar/sql-script.jar
cp shell/Dockerfile /root/jar/Dockerfile
cp shell/docker-compose.yml /root/jar/docker-compose.yml

cd /root/jar
docker build -t springboot-sql-script:hwq .
docker-compose down
docker-compose up -d
IMAGE_ID=$(docker images -f "dangling=true" -q)
if [ "$IMAGE_ID" != "" ]; then
	docker rmi $IMAGE_ID
fi
3,保存后点击构建

一键化部署java应用 一键部署java环境_linux_32

4,最后在说一点

该脚本是适用于单节点部署

正常在生产开发中,一般会部署,maven 仓库 和 docker 仓库,脚本还应该涉及 jar 包的上传 和 docker 镜像的上传

如果要实现多节点还应该结合 dokcer swarm 或者 k8s 实现集群部署