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

相关推荐

  • AndroidStudio_从Eclipse到AndroidStudio开发工具(android studio eclipse)

    在Eclipse中开发Android,新建一个工程以后,如果想引用其他的类库,可独立运行模块之类的,需要再创建一个工程,但是 在androidstudio中,一个工程就包含了所有的…

    科研百科 2023年5月6日
    198
  • 广告专业科研项目申报书

    广告专业科研项目申报书 近年来,随着互联网技术的不断发展和普及,广告行业也迎来了数字化、智能化的新变革。作为广告行业的重要组成部分,广告创意和广告技术的创新都直接关系到广告效果的实…

    科研百科 2025年4月6日
    1
  • 解决基层党建工作中存在问题的措施(解决基层党建工作中存在问题的措施有哪些)

    一是调动党组织做好党建工作的积极性,消除“业务工作为主,党建工作为辅”的认识,坚持“虚工实做”,以党建工作实效去推动业务工作的顺利完成。 二是提高党建工作执行能力,分类建立工作任务…

    科研百科 2023年11月16日
    204
  • plm项目管理系统英文(plm项目管理系统)

    plm项目管理系统plm项目管理系统plm项目管理[4] 北京无[5] 北京无[6] 北京市食品行政部门[7] 三类事务组织(三)信息系统的治理与维护3.信息系统的功能(1)开发与…

    科研百科 2024年9月26日
    30
  • 安全投入保障制度(安全投入保障制度范本)

    1 目的和适用范围 为建立安全生产投入的长效机制,保证安全生产所需资金投入,保障安全生产,根据安全生产有关法律法规、《安全生产管理制度》,制定本办法。 本办法适用于中煤大同能源电厂…

    科研百科 2022年7月16日
    288
  • 铁路货物运开通标语口号

    铁路货物运开通标语口号 随着铁路货物运的开通,我们的货物运输更加便捷,更加高效。我们非常高兴能够享受这一便利,同时也感谢铁路货物运为我们提供的服务。 铁路货物运的开通,让我们的货物…

    科研百科 2024年11月30日
    3
  • 重点项目监察管理系统

    重点项目监察管理系统 随着城市化进程的加速和经济发展的需求,重点项目的建设和管理变得越来越重要。然而,在项目的建设过程中,常常会存在一些问题,如人员变动、材料短缺、进度延误等,这些…

    科研百科 2025年1月8日
    0
  • 智能项目管理系统

    智能项目管理系统:更高效、更智能的项目管理方式 随着现代信息技术的不断发展,项目管理系统已经成为了项目管理中不可或缺的一部分。智能项目管理系统不仅能够提高项目的效率,还能够提供更加…

    科研百科 2024年8月14日
    30
  • 招投标项目管理师怎么考?报考难度大吗?含金量高吗?(招投标管理师有用吗)

    招投标项目管理师是专门从事招投标活动的专业技术人才,他们的工作职责涉及招投标过程的多个环节。招投标项目管理师不仅需要编制招标采购计划、方案、招标采购公告,还需要负责招标资格预审文件…

    科研百科 2024年6月14日
    91
  • 软件项目管理体系

    软件项目管理体系 随着计算机技术的不断发展,软件项目已经成为了现代社会中不可或缺的一部分。然而,传统的软件项目管理方式已经无法适应现代软件开发的需求,因此建立一种高效的软件项目管理…

    科研百科 2024年5月31日
    69