# 说明
本章主要用于 DevOps 的前后端编译打包说明。
本章中所用到的介质可从以下介质库中获取:
介质地址:ftp://10.15.15.57/DevOps-dev/
maven离线库:server/m2repo.zip
打包前请自行准备好Devops对应版本代码
从远端获取代码库
# git clone 对应代码库
# 前端编译打包
# 准备打包工具
自行安装nodejs,本文使用版本为node-v11.15.0
# 前端编译打包
环境检查
进入devops代码库下devops-web目录,确保不存在target和node_modules文件夹
环境准备
依赖安装
更新npm仓库源 # npm config set registry https://registry.npm.taobao.org 安装依赖 # npm install --unsafe-perm
前端编译打包
进入devops代码库下devops-web目录,执行build命令
构建前端代码到dist目录 # npm run build:prod
如下构建成功
更新国际化配置到dist目录 # npm run build:i18n
如下构建成功
dist目录即为devops-web前端构建文件夹 可自行压缩成zip包;
也可通过执行前后端打包成war包命令,从devops-web/target目录下获取打包好的devops-web.zip
# 后端编译打包
# 准备打包工具
自行安装maven工具,推荐版本apache-maven-3.3.9
配置 Maven,下载离线库:server/m2repo.zip并解压,下载 Maven Settings文件:server/settings.xml
修改 Settings 文件,并将 localRepository 改为自己的本地路径。
# 后端编译打包
如何把基于EOS8的Devops应用打包成一个独立可执行的fatjar包
EOS8默认打包的介质是一个tar.gz,虽然包含了一个可执行的fatjar包,为了方便修改配置文件,应用中的配置等文件并不在fatjar中,具体的目录主要关注结构如下:
devops devops tar.gz 解压后应用目录
├── bin
│ ├── startup.sh devops应用启动脚本 linux
│ ├── startup.cmd devops应用启动脚本 windows
│ ├── shutdown.sh devops应用停止脚本 linux
│ └── shutdown.cmd devops应用停止脚本 windows
├── config devops配置文件目录
│ ├── devops/config devops应用配置文件目录
│ │ └── user-config.xml devops的用户配置文件(jdbc链接等)
│ └── application.properties 配置应用端口等参数
├── db-scripts devops平台初始化脚本目录 devops全量安装仅关注devops目录下对应数据库类型all.sql即可
├── lib 存放数据库驱动包以及三方jar包
└── {fatjar}.jar devops应用打包后的fatjar包
打包过程如下
- 选中项目,点击右键执行maven build... ,输入clean package 对于devops项目按需添加如下参数 后面的版本等参数关系到config/DEVOPS/version中version.properties信息
-DaltDeploymentRepository=primeton_product_stage_21::default::http://192.168.2.1:8081/nexus/content/repositories/Primeton_Product_Stage/ -DDevOps.Version=${devops.version} -Dmaven.test.failure.ignore=true -Dfile.encoding=UTF-8 -DcodeBranch=${globalData.codeBranch} -DcommitId=${globalData.codeCommitId} -DbuildNo=${pipelineContext.buildNo + 1000} -e
- 打包成功示意图
- 可以在boot构件包下的target目录中找到对应的fatjar和对应压缩包
将前端打入后端tar.gz包中 通过spring启动前后端不分离
前提是已经构建过前端代码形成了dist目录!
参考ant构建build.xml如下
<project name="package-example" default="default">
<!-- 定义属性 -->
<property name="src.tar.gz" value="com.primeton.devops.boot/target/devops-boot-6.7.0.tar.gz"/>
<property name="src.zip" value="devops-web/target/devops-web.zip"/>
<property name="target.dir" value="extracted"/>
<property name="static.dir" value="${target.dir}/static"/>
<property name="output.tar.gz" value="devops-server.tar.gz"/>
<target name="default">
<mkdir dir="${target.dir}"/>
<!-- 目标:解压tar.gz -->
<exec executable="tar">
<arg value="xzf"/>
<arg value="${src.tar.gz}"/>
<arg value="-C"/>
<arg value="${target.dir}"/>
</exec>
<!-- 目标:解压zip到static目录 -->
<unzip src="${src.zip}" dest="${static.dir}"/>
<!-- 目标:重新打包为tar.gz,包含static目录 -->
<tar destfile="${output.tar.gz}" compression="gzip">
<tarfileset dir="${target.dir}"/>
</tar>
</target>
<!-- 清理目标 -->
<target name="clean">
<delete dir="${target.dir}"/>
<delete file="${output.tar.gz}"/>
</target>
</project>