Java项目Maven部署

本文讲述了在gitlab代码推送后,Jenkins构建中遇到微服务依赖版本问题的解决方法,涉及maven的install、deploy操作,以及IntelliJ中配置,还解释了项目部署、jar包下载、版本号组成和snapshot与release的区别。
摘要由CSDN通过智能技术生成

将代码推到gitlab之后,在Jenkins构建的时候,偶尔会遇到微服务模块之间互相依赖的版本报错,获取不到最新的版本。有点被maven的install和deploy搞乱了,所以写个文章梳理一下

jar包和代码之间的关系


项目部署是什么意思?

  • 部署一个项目,只是意味着将它的代码上传到云服务器,项目运行的时候会使用最新上传的代码。而项目依赖的jar包,在运行时都会从指定的仓库下载
  • 如何实现从指定的仓库下载?
    • 在Intellij里面,对maven进行设置
      • 打开指定路径的 conf\settings.xml

maven的命令

  • clean - 清理项目构建目录,删除target目录;但不会删除本地maven仓库已生成的jar包
  • compile:编译项目代码,生成target目录
  • package:将Java项目进行打包,Jar包或者war包;还包括compile命令,生成target目录
  • install:包括了package命令;还将项目安装到本地的maven仓库,以便本地的项目拉取依赖
  • deploy用于将项目的artifacts(比如jar包,或者war包) 发布到远程仓库,以便其他开发人员可以依赖它

版本管理

  • 版本号的组成:1.0.0 - snapshot
    • 第一个数字表示主版本号,架构有重大变化
    • 第二个数字表示次版本号,有较大范围的功能变化,及bug修复,但不涉及架构变化
    • 第三个数字表示增量版本号,重大bug修复
    • 最后一个表示,里程碑版本:常见的是snapshot,还有alpha,beta
  • snapshot和release的区别
    • snapshot代表不稳定、开发中的快照版本,可以覆盖
      • 支持不改version而引入新版本,但是maven或者idea并不是非常频繁去拉取更新 - 时间据说是1-2天
      • 手动触发拉取更新,通过Jenkins pipeline脚本
    • release则代表稳定的,发行版本,通常不允许覆盖,只允许发布一次

前提知识

Target目录
  • 编译结果:Java文件编译生成的class文件,会被放在 target/classes 文件夹下
  • 资源文件:非JAVA源码的文件,例如配置文件,属性文件
  • 依赖文件:项目依赖的外部库(如JAR文件)通常存放在target/lib或者使用Maven等构建工具时,通过依赖管理工具自动下载到target或target/lib目录
  • 构建产物(build results):构建完成后生成的可执行文件(如JAR文件或WAR文件)通常放在target目录下
  • 其他临时文件:构建过程中生成的临时文件和日志文件,如编译过程中的中间文件、编译日志等,可能会放在target目录或其子目录中
编译和构建的区别

编译

  • 将高级编程语言(如Java、C、C++等)写成的源代码文件转换成目标代码的过程。目标代码通常是机器能够理解和执行的低级代码形式,或者是更高级别的字节码(比如Java的字节码)。主要目的是将源代码转换为计算机能够直接执行的形式

构建

  • 通过执行一系列的任务和操作,将源代码转换为可执行软件系统或者软件模块的过程
  • 一般包括,编译,依赖管理,资源管理,打包和部署
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值