程序员的项目管理工具:Maven,让人又爱又恨(maven是项目管理工具)

程序员的项目管理工具:Maven,让人又爱又恨(maven是项目管理工具)

1、maven 是干什么的?

Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。

Maven 的正确发音是[ˈmevən],而不是“马瘟”以及其他什么瘟

2、Maven 解决了什么痛点?

① 添加第三方 jar 包

手动会出现 jar 包冲突,版本冲突。通过统一的 Maven 仓库我们可以享受到一个完全统一规范的 jar 包管理体系。

② jar 包之间的依赖关系

Maven 可以替我们自动的将当前 jar 包所依赖的其他所有 jar 包全部导入进来,无需人工参与,节约了我们大量的时间和精力。

③ 将项目拆分成多个工程模块

程序员的项目管理工具:Maven,让人又爱又恨(maven是项目管理工具)

3、Maven 的同类技术

Java世界中主要有三大构建工具 Ant、Maven和Gradle

你用的构建工具? 单选 00% A.Ant 00% B.Maven 00% C.Gradle

Ant(Another Neat Tool), 开始主要用来构建著名的 Tomcat ,产生的动机是由于作者 James Duncan Davidson 受不了 Makfile 的语法格式。

程序员的项目管理工具:Maven,让人又爱又恨(maven是项目管理工具)

Ant

Maven 的产生,也是由于厌倦了日复一日的手工构建工作,对各个项目风格迥异的构建系统感到麻烦。Maven 的依赖管理以及项目构建规则重用性等特点,让 Maven几乎成为 Java构 建工具的事实标准。

程序员的项目管理工具:Maven,让人又爱又恨(maven是项目管理工具)

Maven

Gradle 作为新的构建工具,基于 Groovy 语言的构建工具,既保持了 Maven 的优点,通过使用 Groovy 定义,克服了 Maven 中使用 XML 繁冗以及不灵活等缺点,它最后被 google 作为了 Android 御用管理工具。

程序员的项目管理工具:Maven,让人又爱又恨(maven是项目管理工具)

Gradle

4、使用 Maven 的环境配置

环境配置都是一个套路,不详细展开。

① Maven 是一个基于 Java 的工具,所以要做的第一件事情就是安装 JDK

程序员的项目管理工具:Maven,让人又爱又恨(maven是项目管理工具)

② Maven 安装

程序员的项目管理工具:Maven,让人又爱又恨(maven是项目管理工具)

程序员的项目管理工具:Maven,让人又爱又恨(maven是项目管理工具)

注意:以 Idea 打开项目为例,每当我们从 gitlab 上 clone 项目时,通常使用的是 idea 自带的 maven 路径。

实际开发中我们的很多依赖包是从公司私库里下载的,你需要找同事要一份 setting.xml 文件替换你原有的文件。

在 windows 下,我们一般将文件不放到 C 盘,放到其他盘符中。

5、Maven 的约定配置

Maven 提倡使用一个共同的标准目录结构,Maven 使用约定优于配置的原则,大家尽可能的遵守这样的目录结构

程序员的项目管理工具:Maven,让人又爱又恨(maven是项目管理工具)

程序员的项目管理工具:Maven,让人又爱又恨(maven是项目管理工具)

6、Maven 构建生命周期

程序员的项目管理工具:Maven,让人又爱又恨(maven是项目管理工具)程序员的项目管理工具:Maven,让人又爱又恨(maven是项目管理工具)程序员的项目管理工具:Maven,让人又爱又恨(maven是项目管理工具)

【面试:maven package与maven install 命令的区别? 】

在项目中经常会发生,一个子项目修改了但是其他有依赖该子项目的项目却依赖不到。

① maven install:打包好的 jar 包会安装到本地的 maven 仓库中,使用的配置是默认的配置,供其他项目使用。

② maven package 打包后的文件存放到项目的 target 目录下。

总结:

如果子项目之间的工程,发生改动,改动的子项目要进行maven install,然后需要调用该子项目的子项目进行maven package

最简单的方式就是父工程进行 maven install

最烦人的是这种情况,依赖的是远程私库的包,如果你是一名开发者,你修改了这个远程包,一定要记得 clean、install 和 deploy ,不然其他开发者的项目会报错。

7、Maven 仓库分类

程序员的项目管理工具:Maven,让人又爱又恨(maven是项目管理工具)

Maven 的仓库只有两大类:

1、本地仓库

2、远程仓库

在远程仓库中又分成了 3 种:

① 中央仓库

② 私服

③ 其它公共库

Maven 会先搜索本地仓库(repository),发现本地没有然后从远程仓库(中央仓库)获取。

但中央仓库只有一个,最好从其镜象处下载。国内可以用阿里云下的服务器。【其它公共库】

也有通过 Nexus 搭建的私服进行获取的。【私服】

我们也 把 Maven 中的仓库分为两种:

① SNAPSHOT 快照仓库

② RELEASE 发布仓库

SNAPSHOT 快照仓库用于保存开发过程中的不稳定版本,RELEASE 正式仓库则是用来保存稳定的发行版本。定义一个组件/模块为快照版本,只需要在 pom 文件中在该模块的版本号后加上 -SNAPSHOT 即可(注意这里必须是大写)

Maven 会根据模块的版本号(pom 文件中的 version)中是否带有 -SNAPSHOT 来判断是快照版本还是正式版本。

a.如果是快照版本,那么在 mvn deploy 时会自动发布到快照版本库中,会覆盖老的快照版本。而在使用快照版本的模块,在不更改版本号的情况下,直接编译打包时,Maven 会自动从镜像服务器上下载最新的快照版本。

b.如果是正式发布版本,那么在 mvn deploy 时会自动发布到正式版本库中,而使用正式版本的模块,在不更改版本号的情况下,编译打包时如果本地已经存在该版本的模块则不会主动去镜像服务器上下载。

所以,我们在开发阶段,可以将公用库的版本设置为快照版本,而被依赖组件则引用快照版本进行开发,在公用库的快照版本更新后,我们也不需要修改 pom 文件提示版本号来下载新的版本,直接 mvn 执行相关编译、打包命令即可重新下载最新的快照库了,从而也方便了我们进行开发。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年5月30日 上午10:04
下一篇 2022年5月30日 上午10:06

相关推荐

  • 上海系统项目集成管理

    上海系统项目集成管理 随着信息技术的不断发展,上海系统项目集成管理已经成为现代项目管理中不可或缺的一部分。上海系统项目集成管理是指通过集成各种资源,包括人力、技术、资金等,来实现一…

    科研百科 2024年12月25日
    0
  • 办公室办公云桌面系统

    办公室办公云桌面系统:提升工作效率的“神器” 随着科技的不断发展,云桌面系统成为了现代办公室办公的主流设备之一。相比传统的桌面电脑,云桌面系统可以提供更加灵活、高效、安全的工作环境…

    科研百科 2024年8月23日
    34
  • 理财项目管理系统

    理财项目管理系统: 帮助理财机构实现高效管理 随着金融市场的不断发展,理财机构的数量也在不断增加。然而,这些机构面临着日益复杂的财务管理问题,如何高效地管理理财项目、确保资产的安全…

    科研百科 2024年5月28日
    106
  • 组织级项目管理、流程管理(组织级项目管理,流程管理是什么)

    组织级项目管理 组织级项目管理内容组织级项目管理主要包括以下三个方面的目的1)指导组织的投资决策和恰当的投资组合,实现组织资源的最优化配置;2)提供透明的组织决策机制,是组织项目管…

    科研百科 2023年9月5日
    205
  • 没有项目管理经验,可以参加PMP考试吗?(想做项目管理方面的工作,但没有一点经验怎么办)

    咱们先来了解一下PMP,PMP认证是一项针对项目管理的资格认证,属于管理学中的经济/项目管理,也是目前职业资格认证中含金量较高的,堪比MBA、MPA。 许多大型私企和外企在招聘项目…

    科研百科 2023年8月4日
    240
  • 妇产科的护理科研项目

    妇产科的护理科研项目 随着人口的增长和医疗技术的不断提高,妇产科护理科研项目已经成为护理领域中的重要研究方向之一。妇产科护理科研项目主要关注妇女在生育、分娩、育儿等方面的健康和幸福…

    科研百科 2025年4月28日
    3
  • 科研项目报奖心得

    科研项目报奖心得 近年来,随着科技的不断发展,科研项目报奖已经成为许多研究人员梦寐以求的荣誉之一。作为一名研究人员,我深知一份奖项的获得不仅仅是对我个人的荣誉,更是对团队努力的认可…

    科研百科 2025年2月17日
    0
  • 忠实履行党建职责 争当优秀支部书记(忠实履行党建职责争当优秀支部书记)

    □罗克军(湖南省委机关医院党支部书记、院长) 感悟真理伟力,强化党建担当。省直机关第57期党支部书记培训示范班,培训时间不长,但主题集中,着眼岗位需要,紧盯短板补课,规范职责行为,…

    科研百科 2023年11月14日
    168
  • “灯塔—党建在线”:党员学习新阵地 党建工作新平台(灯塔-党建在线心得体会)

    【党旗在基层一线高高飘扬】 光明日报记者 赵秋丽 冯帆 “通过这次培训,我对‘灯塔—党建在线’系统中各模块应用有了更好的了解和把握,管好用好我们村的‘灯塔—党建在线’,对于提升本村…

    科研百科 2023年2月27日
    393
  • 医院合同管理

    医院合同管理 医院合同管理是指在医院中,通过合同形式对医院的医疗服务、医疗器械采购、人员招聘等方面进行管理和监督,以确保医院的运营和管理符合法律和道德标准,同时提高医院的效率和质量…

    科研百科 2024年8月12日
    32