程序员的项目管理工具: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月6日
    72
  • “党建+网格”提升治理效能(党建引领网格治理)

    沿着宽阔的道路进入石楼县灵泉镇胡家峪村,宽敞的环村路沿着村子延伸,两旁的景观树郁郁葱葱,村容村貌干净整洁,村民热情好客,处处体现着农村新风貌、新风尚。自抓党建促基层治理能力提升专项…

    科研百科 2023年2月12日
    224
  • 台州 科研项目 黄和平

    黄和平是一位来自台州的科学家,他一直致力于研究微生物在环境中的作用。最近,他和他的团队完成了一项具有里程碑意义的科研项目,该项目旨在研究不同种类的微生物在土壤中的应用。 黄和平和他…

    科研百科 2025年3月11日
    0
  • 医疗科研项目汇报范文

    医疗科研项目汇报范文 尊敬的领导、各位专家: 我是XXX,本次科研项目的参与者,现在向大家汇报我们的研究进展。 本次研究旨在探究XXX,以解决XXX问题。我们采用XXX方法,经过X…

    科研百科 2025年3月11日
    0
  • 政治科研项目讲解内容

    政治科研项目讲解 政治科研项目是研究政治问题的一种重要方式,能够帮助人们更好地了解政治,并为政治决策提供依据。这些项目通常涉及政治制度, 政治文化, 政治法律等方面, 并且通常由政…

    科研百科 2025年2月27日
    0
  • 四川省在谈项目管理系统

    四川省在谈项目管理系统 随着数字化时代的到来,项目管理变得越来越重要。四川省作为一个历史悠久、文化底蕴深厚的省份,在谈项目管理系统作为一种先进的项目管理工具,为四川省的经济发展提供…

    科研百科 2025年1月25日
    1
  • 研发也是科研项目吗

    研发也是科研项目吗? 研发是科研项目的一个重要组成部分,它是在已知目标和问题的基础上进行的创新工作,旨在开发新的产品或服务,解决现有的问题或满足用户的需求。与传统的科研项目相比,研…

    科研百科 2025年3月24日
    1
  • 【抓党建促基层治理】朔城区:坚持“三个精准”加强村(社区)党组织书记星级化管理

    朔城区认真贯彻落实省委抓党建促基层治理能力提升专项行动要求,坚持“三个精准”抓实村(社区)党组织书记“星级化”管理,形成“考核定星、动态调整,以星定酬、持续激励”的长效管理机制,推…

    科研百科 2023年1月3日
    185
  • 项目结题报告中的技术指标怎么写

    项目结题报告的技术指标怎么写 在项目结题报告中,技术指标是一个重要的部分,它描述了项目在实现过程中所达到的性能和效果。在编写项目结题报告时,应该确保技术指标的准确性和全面性,以便向…

    科研百科 2024年12月1日
    114
  • 江苏省协同创新中心(江苏协同办公)

    江苏协同办公:创新数字化工作方式 随着科技的不断发展,数字化工作方式已经成为现代企业的首选。在江苏,许多企业已经开始采用协同办公的方式来提高生产力和工作效率。江苏协同办公的发展,不…

    科研百科 2024年6月7日
    84