jekenis+maven(nodejs)+svn自动化部署(前后端)

1、安装maven环境

下载maven

https://dlcdn.apache.org/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz

解压

tar -zxvf apache-maven-3.8.4-bin.tar.gz

配置环境变量

vim /etc/profile

在文件结尾添加

export MAVEN_HOME=/apps/apache-maven-3.8.4
export PATH=$MAVEN_HOME/bin:$PATH

使修改的配置生效

source /etc/profile

测试:

mvn -v

显示maven版本信息,maven安装成功

修改settings.xml (settings.xml里面的仓库地址记得修改成linux下仓库目录)

maven仓库目录

/apps/mavenRepositories

2、jenkins配置

2.0、为什么要使用jenkins

自动完成打包发布,减少重复的操作过程以节省时间和工作量。

比如我在今天打包给运维的时候,就不小心带了本地虚拟机的nacos服务器地址,使用jenkins每次部署的配置和代码来自版本库,可以避免本地改动造成的污染。

2.1、安装jenkins

使用war包安装,官网下载jenkins.war

执行

java -jar jenkins.war --httpPort=3344

启动成功,war包方式安装的jenkins插件目录为:

/root/.jenkins/plugins

2.2、初始化jenkins

2.2.1、 解锁Jenkins

jekenis+maven(nodejs)+svn自动化部署(前后端)_第1张图片

服务器查看admin密码(首次启动)

cat /root/.jenkins/secrets/initialAdminPassword

2.2.2、安装推荐的插件

jekenis+maven(nodejs)+svn自动化部署(前后端)_第2张图片
jekenis+maven(nodejs)+svn自动化部署(前后端)_第3张图片

2.2.3、创建管理员用户

jekenis+maven(nodejs)+svn自动化部署(前后端)_第4张图片

2.3、全局工具配置

点击Manage Jenkins->Global Tool Configuration,进入全局工具配置页面

全局工具配置只需要配置JDK、Maven、NodeJs(前端项目需要)

jekenis+maven(nodejs)+svn自动化部署(前后端)_第5张图片
jekenis+maven(nodejs)+svn自动化部署(前后端)_第6张图片
jekenis+maven(nodejs)+svn自动化部署(前后端)_第7张图片

3、配置项目自动化部署

3.1、创建一个自动构建任务

jekenis+maven(nodejs)+svn自动化部署(前后端)_第8张图片

3.2、如果是maven父工程(或前端)

输入名称,选择创建一个自由风格的项目
jekenis+maven(nodejs)+svn自动化部署(前后端)_第9张图片

3.3、如果是一个微服务模块

输入名称,选择创建一个maven项目
jekenis+maven(nodejs)+svn自动化部署(前后端)_第10张图片

3.4、jenkins配置svn

jekenis+maven(nodejs)+svn自动化部署(前后端)_第11张图片

3.5、jenkins配置项目构建命令

后端项目配置maven构建命令

jekenis+maven(nodejs)+svn自动化部署(前后端)_第12张图片

前端项目配置npm构建,选择jenkins中安装的nodejs插件,其他默认即可
jekenis+maven(nodejs)+svn自动化部署(前后端)_第13张图片

3.6、配置自动化脚本

  • 第一行,Jenkins默认会在Build结束后Kill掉所有的衍生进程,会杀死我们的,不配置的话会杀死我们的后台启动进程

    /xxx/startupBase.sh: 行 67: 29902 已杀死               nohup java -jar $JAVA_OPTS $SPD_BASE > $SPD_BASE_LOG 2>&1
    
  • 第二行,打印当前所在路径,可删除

  • 第三行,将构建好的jar包移动到我们想要的目录下

  • 第四行,执行启动脚本

BUILD_ID=DONTKILLME
pwd
mv ./target/*.jar /xxx/
./bin/startup.sh restart

如:

jekenis+maven(nodejs)+svn自动化部署(前后端)_第14张图片

如果是父工程,要重启所有模块

BUILD_ID=DONTKILLME
pwd
find . -path '*spd-modules*' -name *.jar -exec mv {} /xxx/ \;
find . -path '*spd-gateway*' -name *.jar -exec mv {} /xxx/ \;
./bin/startup.sh restart

如果是前端项目,使用shell命令拷贝到nginx目录下,由于Linux下默认cp命令是有别名(alias cp=‘cp -i’)的,无法强制覆盖,即使你用 -f 参数也无法强制覆盖文件,我们使用\cp来强制覆盖旧文件

pwd
npm install -registry=http://registry.npm.taobao.org --unsafe-perm
npm run build
\cp -rf dist/* /xx/nginx-1.10.2/html/

3.7、配置完成后,点击保存

jekenis+maven(nodejs)+svn自动化部署(前后端)_第15张图片

3.8、在控制台点击构建按钮

jekenis+maven(nodejs)+svn自动化部署(前后端)_第16张图片

或者点击模块名进入项目构建页面,点击build now进行项目构建

jekenis+maven(nodejs)+svn自动化部署(前后端)_第17张图片

点击左下角当前正在进行的构建任务

jekenis+maven(nodejs)+svn自动化部署(前后端)_第18张图片
在这个页面可以点击"控制台输出"查看构建输出信息

3.9、源码检出

构建成功后,默认源码检出路径为:

/root/.jenkins/workspace/

也可以自定义源码检出位置Local module directory

jekenis+maven(nodejs)+svn自动化部署(前后端)_第19张图片

3.10、启动成功

jekenis+maven(nodejs)+svn自动化部署(前后端)_第20张图片

3.11、注意

如果是新的启动脚本可能检出源码后会提示没有执行权限,需要在svn命令行执行如下命令设置为可执行文件

svn propset svn:executable on startup.sh

你可能感兴趣的:(工作工具,maven,svn,自动化,node.js,java)