Jenkins自动化部署springboot多模块依赖jar


前言

实现使用jenkins自动化部署springboot多模块打包jar


提示:以下是本篇文章正文内容,下面案例可供参考

一、实现原理

大概实现流程

  1. 使用git命令拉取指定分支的代码
  2. 使用maven指定命令构建项目到jenkins项目目录
  3. 通过ssh server 推送jar到指定服务器下面的目录
  4. 推送成功后执行shell命令

二、操作步骤

1.General 设置

在这里插入图片描述

2.Git源码配置

在这里插入图片描述

3.构建触发器和环境

在这里插入图片描述
在这里插入图片描述

clean package  -pl  fast-ufish-dataview -am -amd   -P test -Dmaven.test.skip=true

clean package 清除打包
-pl fast-ufish-dataview -am -amd 指定项目下的子模块
fast-ufish-dataview 是子模块的项目名
-P test 指定构建环境
-Dmaven.test.skip=true 跳过测试

4.上传服务器

在这里插入图片描述

#!/usr/bin/env bash

echo 'kill fast-ufish-dataview pid'

pid=`ps -ef | grep 8802  |grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
  kill -9 $pid
fi

cd  /usr/local/ufish_project/fast-ufish-dataview

sh   /usr/local/ufish_project/fast-ufish-dataview/startDataViewFastUfish.sh

echo "start successful"

总结

  1. 配置很简单,主要是maven的命令指定打包那个项目的jar比较重要
  2. 还有配置上传的shell脚本比较重要,这个要注意一下
### Spring Boot 多模块项目开发教程最佳实践 #### 选择合适的开发工具及系统环境 为了顺利开展Spring Boot多模块项目的开发工作,建议使用IntelliJ IDEA作为集成开发环境,并确保操作系统支持Java开发环境。此外,安装Maven来管理依赖关系和构建过程也是必不可少的[^1]。 #### 初始化项目结构 利用Spring Initializr可以便捷地初始化一个新的Spring Boot应用程序,在线生成器提供了多种技术栈的选择机会。对于多模块项目而言,则需手动调整pom.xml中的<packaging>标签为`pom`而非默认的jar/war形式,以此定义父级聚合工程[^4]。 ```xml <groupId>com.example</groupId> <artifactId>multi-module-project</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <modules> <module>api</module> <module>service</module> <module>webapp</module> </modules> ``` #### 配置子模块间的依赖关系 每一个独立的功能单元应当被拆分成单独的maven module,比如数据访问层、业务逻辑处理部分和服务暴露接口等。各子模块之间可以通过声明相互之间的依赖来进行协作调用。注意要遵循单向依赖原则以减少耦合度并提高可维护性[^3]。 #### 整合MyBatis实现持久化操作 当涉及到数据库交互时,推荐采用MyBatis框架配合Spring Boot完成ORM映射任务。可以在对应的DAO层引入必要的starter包,并编写相应的Mapper接口用于执行SQL语句查询或更新动作。同时记得配置datasource连接池参数以及mapper扫描路径等相关属性设置。 ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC username: root password: 123456 mybatis-plus: mapper-locations: classpath*:mapper/*.xml ``` #### 测试驱动开发(TDD) 在整个软件开发生命周期内贯彻测试先行的理念有助于尽早发现潜在缺陷从而降低后期修复成本。针对不同层次(单元测试、集成测试)分别建立专门目录存放相应类型的TestCase类文件,借助JUnit/Jupiter框架及其配套Mockito库模拟外部资源行为以便于隔离验证内部功能正确性[^2]。 #### 自动化部署流程优化 最后阶段应考虑如何简化发布上线环节的工作量。借助CI/CD流水线工具链如GitLab CI、GitHub Actions或者Jenkins等平台自动化编译打包镜像推送等一系列重复性的手工劳动,使得每一次提交都能触发完整的持续交付管道运行直至最终产物成功部署至目标服务器环境中去。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值