jenkins发布maven多模块+springboot项目(升级版)

1.项目结构

经过思考,我的项目既结合了横向分层又结合了纵向封层。

最顶层的是main的父pom文件,打包方式是pom

main模块的子模块有:official,user,auth-jwt,common,global-config,global-handle,除了official和user的打包方式是pom外,其他都是jar,作为公共模块

user模块的子模块有:user-dao,user-main,user-model,user-service,user-web,除了user-main这个入口打包方式为war外,其余都是jar

official模块的子模块有:official-dao,official-main,official-model....,除了official-main这个入口打包方式为war,其余都是jar

2.本地打包

本地打包,要分几个步骤:

1.当你本地的maven仓库还没有该maven项目时,即在本地,你之前没有打包过这个项目,那么就需要先将打包方式为pom的模块中的modules标签注释掉,注意是所有的打包方式为pom的模块。这里就是main,user,official这3个模块。因为不注释,直接打包会报错,比如我现在想打包user-main模块,然后直接install这个模块,是会报错的,因为他连user模块都找不到,如果你install user模块,也会报错,因为找不到main模块。

2.install 所有打包方式为pom的模块,这一步的作用相当于是声明所有的父pom,告诉之后会使用到他们的子模块,我在maven本地仓库是存在的,不用去远程仓库找我

3.去掉第一步打的所有注释

4.我现在想要install user-main这个模块,这个模块的打包方式是war,那么我先进入main模块的父pom文件所在的文件目录,即顶级父pom文件所在目录,然后执行:

mvn clean install -pl user/user-main -am -amd

注意这里要使用命令行的方式,因为可以看到我们是设置了参数的,-pl 作用是指定你要打包哪个模块,-am和-amd大致意思就是能够自动帮你找到需要的依赖,如果依赖没有打包,也会自动给依赖进行打包。这里其实没有必要加-amd

具体的可参考:https://www.cnblogs.com/hiver/p/7850954.html

3.使用jenkins发布醒目

1.这里打包也是和本地打包类似,如果你是在服务器新创建的maven仓库,需要先把所有打包方式为pom的文件中的modules全部注释,然后上传代码到码云,然后在jenkins上新建项目,最后构建项目。这些操作在我的另一篇博客有很详细的讲解:https://blog.csdn.net/weixin_38312502/article/details/103078948

2.去掉所有modules的注释,再次提交到码云,然后构建

 

这里构建后的操作中 可以看到source files,remote directory都是空的,就是不发文件的意思,因为我在上一步已经将war包放到我想要的地方了,但是还是要使用这个工具进行tomcat的重启。这里有个坑,我为什么不直接用上面那种方法去操作完所有指令,而要用这个工具,多次一举呢?因为上面那个工具执行不了tomcat的启动shell脚本,一执行startup.sh就会报错没有jdk或jre环境,但是其实我容器和host主机都是有java环境的,所以有点蒙,最后还是决定使用send file ... over ssh这个来启动tomcat.

execute shell script on remote host using ssh,该功能需要安装SSH插件,并在系统设置中将SSH remote hosts设置一下

 

4.坑

由于我测试时在jenkins的全局工具里面切换过maven,jdk,或者其他什么操作,导致我在执行clean install 或install 命令时报错:

Failedto execute goal org.apache.maven.plugins:maven-compiler-plugin:3.2:compile(default-compile) on project taotao-manager-pojo: Compilation failure

或者
Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean) on project yqdataservice-core-model: Failed to clean project: Failed to delete 

原因:jenkins创建的项目出问题了

解决方法:重新创建一个jenkins项目搞,项目名字和之前的不一样即可,就下图那个按钮

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
DockerJenkins、GitLab、Maven、Harbor和Spring Boot是一些常用的IT工具和技术,可以用于实现自动化构建和部署。 Docker是一个开源的容器化平台,可以将应用程序及其依赖项打包到容器中,从而实现应用程序的快速部署和隔离。使用Docker可以方便地创建、分享和管理应用程序的容器化版本。 Jenkins是一个开源的持续集成和持续交付工具,可以帮助团队自动化构建、测试和部署应用程序。使用Jenkins可以通过配置和管理各种构建和部署任务,从而实现自动化的软件开发流程。 GitLab是一个基于Git的代码托管和协作平台,可以帮助团队协同开发、管理代码和进行版本控制。使用GitLab可以方便地管理代码仓库、进行代码审查和版本管理。 Maven是一个软件项目管理和构建工具,可以帮助团队自动化构建、测试和部署Java项目。使用Maven可以方便地管理项目依赖、编译代码、运行单元测试等构建任务。 Harbor是一个开源的企业级Docker镜像仓库,用于管理和存储Docker镜像。使用Harbor可以方便地管理镜像的推送、拉取和版本控制。 Spring Boot是一个轻量级的Java开发框架,可以帮助开发者快速构建和部署基于Spring的应用程序。使用Spring Boot可以简化项目配置和管理,提高开发效率。 将这些工具结合使用,可以实现自动化构建和部署。例如,可以使用Jenkins配置一个定时任务,当代码提交到GitLab时,Jenkins会自动触发构建任务。构建任务可以使用Maven编译、打包和测试应用程序,然后使用Docker将应用程序打包成容器镜像,并推送到Harbor中。最后,使用Docker将应用程序部署到服务器上进行运行。这样,我们就可以实现应用程序的自动化构建和部署,提高开发和交付效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

巴中第一皇子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值