程序员的项目管理工具: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年6月22日
    54
  • 非公有制企业党建

    非公有制企业党建 非公有制企业党建是中国共产党在非公有制企业中进行的一项重要工作,旨在推动非公有制企业健康发展,促进非公有制企业与党建工作的深度融合,加强非公有制企业党组织的建设和…

    科研百科 2024年11月20日
    2
  • 科研项目材料表格模板图

    科研项目材料表格模板图 科研项目是科学研究的重要基础,是展示研究进展和成果的重要工具。在科研项目中,材料表格模板图是非常重要的一项内容。 材料表格模板图通常包括以下几个部分: 1….

    科研百科 2025年4月14日
    1
  • 辅助核算科研项目有哪些

    辅助核算科研项目有哪些 科研项目是现代科学发展的重要支撑,对于推动科学技术进步和社会发展发挥着重要的作用。然而,科研项目的核算和管理一直是科学家们关注的焦点。为了更好地管理和核算科…

    科研百科 2025年4月21日
    1
  • 系统项目工程管理

    系统项目工程管理 系统项目工程管理是指在系统设计、开发、测试和部署等整个过程中,对项目进行全面管理和监督,以确保项目的顺利进行和高质量的交付。系统项目工程管理涉及到多个方面,包括项…

    科研百科 2024年10月2日
    27
  • 工会管理制度(工会管理制度有哪些)

    工会充分发挥学校工会这一群众组织的作用,调动广大教职工积极性与创造性,增强教职工的凝聚力与向心力,搞好民主管理,特制定学校工会工作管理制度如下: 1、工会在党支部领导下,认真执行党…

    科研百科 2024年1月29日
    133
  • 南昌市洪都中学2021年新初一招生简章(南昌洪都中学中考2020)

    01 学校简介   洪城之南,青云福地。有一个地方叫“洪都”。她是新中国第一架飞机、第一枚海防导弹的诞生地,是新中国航空工业的摇篮。独特的航空文化内核孕育了南昌市洪都中学。洪都中学…

    2022年6月15日
    874
  • 建设项目用地预审与选址意见书如何办理?(建设项目用地预审与选址意见书办理流程)

    一、办理的法定依据 01《城乡规划法》第三十六条 按照国家规定需要有关部门批准或者核准的建设项目,以划拨方式提供国有土地使用权的,建设单位在报送有关部门批准或者核准前,应当向城乡规…

    科研百科 2024年4月13日
    287
  • 项目管理网站app

    项目管理网站App:提升工作效率的利器 随着数字化时代的到来,项目管理已经成为了现代企业工作中不可或缺的一部分。现在,越来越多的企业开始使用项目管理网站App来管理和协调他们的项目…

    科研百科 2025年7月29日
    0
  • 初识项目管理:01项目管理是个啥?(什么是项目管理)

    “项目管理是干啥的?”这或许是不了解这个专业的人在听到此名词时脑海中直观映射出的第一个问题。 一个比较有趣的事实是,在我面试项目管理岗位的应聘者时,往往也会提出这个问题。应聘者给出…

    科研百科 2022年10月3日
    243