程序员的项目管理工具: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

相关推荐

  • 找准新时代民办学校党建工作新路子

    2021年9月召开全区民办学校党支部标准化规范化建设现场推进会。 广西教育系统以习近平新时代中国特色社会主义思想为指引,贯彻落实《关于加强民办学校党的建设工作的意见(试行)》和《民…

    科研百科 2023年10月6日
    200
  • 科研项目含金量

    科研项目的含金量 科研项目是推动科学技术发展的重要力量。一项高质量的科研项目不仅可以为社会发展做出重要贡献,同时也可以获得巨大的经济、社会和文化价值。 科研项目的含金量主要体现在以…

    科研百科 2025年2月15日
    0
  • 知识产权资助经费开始申领 最高百万元(知识产权专利资助资金)

    近日,萧山区新一轮知识产权资助经费开始申领,标志着去年12月26日新修订的知识产权资助政策落到实处。 新一轮知识产权资助政策扩大了资助范围,细化了资助条项,共包含鼓励企业创牌创优、…

    科研百科 2022年8月6日
    264
  • 安防行业不可不知的常用安防综合管理平台软件(安防类软件)

    如今的安防平台软件可谓丰富至极,百花齐放。经过网络、高清、智能、大数据、AI等一波又不波的技术进步、融合,各厂家的平台已朝不同方向发展,现阶段最火的要属云存储、云识别、移动警务、人…

    2022年6月13日
    302
  • 项目必要性

    项目必要性 项目必要性是指一个项目对于实现目标或满足需求的重要性和必要性。一个好的项目必要性分析可以帮助团队更好地理解项目的目标,明确项目的优先级,以及为项目提供必要的资源和支持。…

    科研百科 2024年10月11日
    16
  • 福建科技厅项目管理系统(福州科技项目管理系统)

    福州科技项目管理系统福州科技项目管理系统(Ti10)在我刚接触这个软件时,常常会收到一些网友的私信,这里有介绍,福州科技工作室要统计平台客服信息,需要负责企业在日前,对外等待人员协…

    科研百科 2024年9月27日
    28
  • 跨境电商海外仓:PDA的技术选型与相关痛难点分享(海外仓erp)

    什么是PDA?一般可以将PDA理解为掌上电脑,这一操作系统的存在可以帮助我们完成移动状态下的作业。那么,你知道PDA产品设计应该如何进行吗?有哪些难点是需要注意的呢?本文作者结合个…

    科研百科 2024年5月20日
    110
  • 什么人不能做科研项目经理什么人不能做科研项目经理

    科研项目经理需要具备多方面的能力和素质,不仅要有优秀的科研经验,还要有良好的项目管理和领导能力。但是,有些人员可能不具备这些能力,因此不能担任科研项目经理。 首先,那些缺乏项目管理…

    科研百科 2024年6月12日
    80
  • 同城医药项目管理系统

    同城医药项目管理系统是一款功能强大、易于使用的软件,能够帮助医药 companies 更好地管理他们的医药项目。该系统涵盖了从项目计划到采购、库存、销售和报告等多个方面,能够帮助医…

    科研百科 2024年12月28日
    0
  • 项目财务管理系统

    项目财务管理系统:提升企业财务管理效率的关键 随着企业规模的不断扩大和业务的不断发展,项目财务管理系统已成为提升企业财务管理效率的关键。本文将介绍项目财务管理系统的定义、作用和优势…

    科研百科 2024年12月15日
    0