CI持续集成环境搭建-Java篇
前言
前段时间写了CI持续集成环境搭建-iOS篇,今天来个Java版
环境交代:【CI持续集成环境搭建-Java篇】在开始之前先说一下项目情况:
macOS Sierra 10.12.1
版本控制:SVN
Jenkins ver. 2.34
Apache Maven 3.3.9
java version "1.7.0_79"
Apache Tomcat 7
Java后台代码通过 Maven 管理库,其中需要依赖另外一个通过 Maven 管理的 Java 工程, Web 前端使用Vue框架和后台代码独立存放,在部署时需要将 Web 前端文件复制到后台代码的 WAR 包中
OK 下面开始
第一步 创建项目
Jenkins的安装请参考前一篇文章因为项目依赖Maven管理,所以这里需要创建一个Maven项目
文章图片
构建一个Maven项目.png 第二步 Global Tool Configuration 配置 Jenkins 的 Maven 和 JDK 环境
Jenkins -> 系统管理 -> Global Tool Configuration因为用的是系统自带的 JDK ,所以地址为
/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
文章图片
JDK.png 如果是另外安装的 JDK ,可以打开设置,点击左下角的 Java
文章图片
设置.png
文章图片
Java控制面板.png
文章图片
Java运行时环境设置.png 找到Java的路径
MAVEN_HOME
为Maven安装路径文章图片
Maven.png
第三步 源码管理
文章图片
源码管理.png 第四步 Build
以当前Demo为例,Root POM
这里需要指定pom.xml文件的路径,需要根据实际情况来调整,${WORKSPACE}
/xxxx/pom.xml
/Users/You name/.jenkins/workspace
目录结构如下Demo-Server
|---A//后台工程
|---src//后台代码
|---pom.xml//Maven pom文件
|---... ...
|---A-View//Web前端代码
|---... ...
所以我这里
Root POM
就填 A/pom.xml
文章图片
Build.png 到这里就完了,点击
Apply
保存
然后点击
立即构建
文章图片
构建.png 如果只是单纯的通过 Maven 管理的项目,不和其他项目依赖,理论上到这里就结束了,Jenkins 自动编译打包完成,拿到 WAR 包手动部署到服务器。Good job! ??
但是,我这里却编译失败,错误是找不到
xxx
依赖工程前面已经交代过项目情况了,对于我这个项目,还有三件事没有完成:
1、有通过 Maven 依赖另外一个项目OK,那一个一个来解决。
2、Web 前端代码需要手动编译,并且需要复制到后台代码的 WAR 包中
3、自动部署
1、添加依赖项目 首先依赖的问题,我的方案是通过 Jenkins 来管理依赖项目,先 Build 依赖项目,再 Build
Demo-Server
操作和上面一样,先创建项目,然后管理源码,配置 POM 文件,最后 Build ,搞定。
依赖项目 Build 成功后,会将项目打包成 jar 包放到 Maven 本地库中
在依赖项目编译成功后,再去编译Demo-Server项目,就OK了。
2、Web前端代码编译,移动 前端使用 Vue 框架,编译需要使用
npm
命令关于 Node.js 和 npm 请自行 Google
前面编译Demo-Server已经生成了一个WAR包,现在需要先解压WAR,然后将编译好的前端代码Copy进去,最后压缩生成新的WAR
我们打开Demo-Server的配置页,在Build下面
Add post-build step
选择 Execute shell
记得上面需要勾选
Run only if build succeeds
,因为只有当项目Build成功后才能去执行下一步操作文章图片
Post Steps.png
Command
填写shell脚本代码#!/bin/bash
echo "**************************************"
echo "xuhui 2016-12-26"
echo "----------------"
echo "描述:"
echo "1、解压war包"
echo "2、编译前端Vue代码"
echo "3、将前端编译成功的代码复制到后台代码目录"
echo "4、将后台和前端代码整合打包war"
echo "**************************************"WAR_PATH="${WORKSPACE}/A/target"
A_VIEW_PATH="${WORKSPACE}/A-view"#解压
cd ${WAR_PATH}unzip A.war -d A_jenkins_temp/rm -rf A.war#编译前端代码
cd ${A_VIEW_PATH}#第一次需要执行npm i安装相关依赖
#npm inpm run build#移动前端代码
cp -r ${A_VIEW_PATH}/dist/* ${WAR_PATH}/A_jenkins_temp/cd ${WAR_PATH}/A_jenkins_temp/zip -r A.war ./mv A.war ../cd ${WAR_PATH}rm -rf A_jenkins_temp/
脚本经供参考,实际业务需要根据项目实际情况来修改脚本3、自动部署 自动部署需要安装插件
Deploy
插件安装:Jenkins -> 系统管理 -> 管理插件 -> 可选插件插件安装成功后,选择Demo-Server -> 配置 -> 构建后操作 -> 增加构建后操作步骤 选择
右上角过滤,输入Deploy,勾选Deploy to Websphere container Plugin
安装并重启
Deploy war/ear to a container
文章图片
构建后操作.png 保存,构建,完成??
注意事项:
1、上图 WAR 包文件地址请填写正确
2、Tomcat 下 webapps 目录下的 manager、host-manager、ROOT 文件夹不要删除,如果删除会导致Deploy插件不能上传WAR到Tomcat中
3、Tomcat 管理员账号配置在 conf 目录下的tomcat-users.xml
文件,配置方式如下
4、Deploy 报内存问题,需要修改 JVM 内存设置,Tomcat 的 bin 下 catalina.sh,在cygwin=false上一行添加下面的代码
export JAVA_OPTS="-Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m"
Over!
推荐阅读
- Activiti(一)SpringBoot2集成Activiti6
- 人生感悟记#环境仪器宋庆国成长记#072
- 六步搭建ES6语法环境
- 阿菘的ScalersTalk第五轮新概念朗读持续力训练Day15|阿菘的ScalersTalk第五轮新概念朗读持续力训练Day15 20191025
- 私有化轻量级持续集成部署方案--03-部署web服务(下)
- 关系问句
- [白雪扇贝每日一句特训班]week5复盘——相信持续的力量
- 集体释放
- Spring集成|Spring集成 Mina
- iOS,打Framework静态库