在工作中如何使用Maven?

前言

这次来说说maven这玩意,同样还是那句话,maven对我而言只是工具,一些常规操作已经足够了,有空有兴趣才会去深入研究它。接下来会记录下自己使用maven时需要注意和理解的地方,至于那些基本概念和环境配置的问题,相信大家都懂。

我在工作中是这样使用Maven的,你怎么用?

 

仓库

maven仓库可分为本地仓库和远程仓库。

如果公司自己有搭建maven私服,那么还可以细分为本地仓库、私服仓库(内网)、中央仓库(外网)。

私服是指公司内网搭建的maven仓库,可供公司内部人员使用。

pom.xml里依赖jar包的寻找流程:

  1. 本地仓库找,找到直接用,不需要联网。
  2. 本地找不到,私服仓库找,找到就下载到本地,以供下次直接使用。
  3. 私服找不到,会直接去中央仓库找,然后下载到私服、本地,以供下次直接使用。

没私服的话,本地仓库找不到就直接去中央仓库找。

构建过程

maven构建过程的各个环节,代表maven工作的某个阶段

  1. 清理:将以前编译得到的旧的class字节码文件删除,为下一次编译做准备。
  2. 编译:将Java源程序编译成class字节码。
  3. 测试:自动测试,自动调用junit程序。
  4. 报告:测试程序执行的结果。
  5. 打包:动态Web工程打war包,java工程打jar包。
  6. 安装:将打包得到的文件复制到仓库中指定位置。
  7. 发布:拷贝最终的工程包到远程仓库,以供其他开发人员使用。

maven实际工作时,顺序不一定从上到下。几个阶段是重要阶段,并不是maven的全部阶段。具体执行什么阶段,执行顺序是啥,依赖于它的生命周期。

有些文章会说到最后一个构建阶段:部署->将动态Web工程生成的war包复制到Servlet容器的指定目录下,使其运行。 这需要在tomcat这种servlet容器配置点什么,然后再执行maven相关命令,war包就会自动部署到容器下。不过我现在开发基本都是在SpringBoot环境下,war包部署就不存在了。有兴趣再去熟悉熟悉。

生命周期

三套相互独立的生命周期,互不影响,定义了构建环节的执行顺序。

  1. clean生命周期:构建之前进行一些清理工作。
  2. default生命周期:常用且核心,包括编译、测试、打包、安装、发布等
  3. site生命周期:生成项目报告、站点。发布站点。(我没怎么用过....)

依赖上述的构建过程和生命周期,maven执行任何一个阶段的时候,它前面的所有阶段都会执行。

例如我们执行 mvn install 的时候,代码会被编译,测试,打包。但不会clean(清理),因为install和clean是在不同的生命周期里,但我们可以结合使用,如:mvn clean install

我在工作中是这样使用Maven的,你怎么用?

 

idea内置maven界面也说明这一点,点击生命周期的某一个阶段,maven会把前面到此阶段都执行下,不信你可以试试。

我在工作中是这样使用Maven的,你怎么用?

 

maven命令

除了通过idea的界面操作maven,我们也可以手打命令,不然在linux系统上你怎么搞?

  • 清理 mvn clean
  • 编译 mvn compile
  • 测试 mvn test
  • 打包 mvn package
  • 安装 mvn install
  • 发布 mvn deploy

执行maven构建命令,必须在pom.xml所在的目录

我在工作中是这样使用Maven的,你怎么用?

 

根据maven生命周期,当你执行mvn install时, compile、test、package、intall会依次执行,mvn deploy同理。

实际开发中,我都是直接敲命令编译打包安装,用得最多的是

mvn clean install -Dmaven.test.skip=true -U

加上clean是先把文件清理干净,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值