目录

1.Maven介绍

1.1Maven是什么

1.2为什么要使用maven

2.Maven安装

2.1下载Maven:

2.2解压并配置

2.3编辑Maven环境变量

2.3.1检查JDK环境变量

​​​​​​​        2.3.2  配置maven_home环境变量

3.Maven配置

3.1仓库类型

3.2本地仓库配置

3.3远程镜像配置

4.Maven常用命令

​​​​​​​        4.1 通过命令来构建项目

​​​​​​​        4.2 对项目进行打包

​​​​​​​        4.3 将项目安装到本地仓库


1.Maven介绍

1.1Maven是什么

** Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。**
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。
Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs

知识点总结: ** Maven项目对象模型(POM) 主要管理项目的构建,报告和文档的项目管理工具软件。**

1.2为什么要使用maven

由于 Java 的生态非常丰富,无论你想实现什么功能,都能找到对应的工具类,这些工具类都是以 jar包的形式出现的,例如 Spring,SpringMVC、MyBatis、数据库驱动,等等,都是以 jar包的形式出现的,jar包之间会有关联,在使用一个依赖之前,还需要确定这个依赖所依赖的其他依赖,所以,当项目比较大的时候,依赖管理会变得非常麻烦臃肿,这是 Maven 解决的第一个问题。

Maven 还可以处理多模块项目。简单的项目,单模块分包处理即可,如果项目比较复杂,要做成多模块项目,例如一个电商项目有订单模块、会员模块、商品模块、支付模块...,一般来说,多模块项目,每一个模块无法独立运行,要多个模块合在一起,项目才可以运行,这个时候,借助 Maven 工具,可以实现项目的一键打包。

Maven 之前,我们更多的是使用Ant的项目构建工具,Ant 有一个特点,每次都得写,每次都写的差不多,配置也臃肿。所以,后来搞出来Maven。Maven就是最先进的版本构建工具吗?不是的,只不过,目前在 Java 领域 Maven 使用比较多。除了 Maven,还有 Gradle。

2.Maven安装

Maven是 Java项目,因此必须先安装 JDK。

2.1下载Maven:

下载地址:http://maven.apache.org/download.cgi

2.2解压并配置

​​​​​​

bin: 该目录包含了mvn运行的脚本,分别为mvn、mvn.bat、mvnDebug、mvnDebug.bat和m2.conf,这些脚本用来配置 Java 命令,准备 CLASSPATH 和相关的 Java 系统属性,然后执行 Java 命令
boot: 该目录只包含一个文件,以maven 3.0为例,该文件为plexus-classworlds-2.2.3.jar。plexus-classworlds是一个类加载器框架,相对于默认的 Java 类加载器,它提供了更丰富的语法以方便配置,Maven 使用该框架加载自己的类库。
conf: 该目录包含了要给非常重要的文件settings.xml。直接修改该文件,就能再机器上全局地定制 Maven 的行为。一般情况下,我们更偏向于复制该文件至/.m2/目录下(表示用户目录),然后修改该文件,在用户范围定制 Maven 的行为。
lib: 该目录包含了所有 Maven 运行时需要的 Java 类库,Maven 本身是分模块开发的,因此用户能看到诸如maven-core-3.0.jar和maven-model-3.0.jar之类的文件。
LICENSE: 该文件记录了 Maven 使用的软件许可证
NOTICE:该文件记录了 Maven 包含的第三方软件。
README.txt: 该文件则包含了 Maven 的简要介绍,包括安装需求以及如何安装的简要指令等。

2.3编辑Maven环境变量

2.3.1检查JDK环境变量

1.配置Java_Home环境变量

2.通过DOS命令窗口 检查配置是否有效

2.3.2  配置maven_home环境变量

1.配置MAVEN_HOME

2.配置环境变量

3.检查Maven是否有效 重启DOS窗口

3.Maven配置

实际上,没有特殊需求的话,安装好之后直接就可以用了。一般来说,还是需要稍微配置一下,比如中央仓库的问题。Maven默认使用自己的中央仓库,使用起来网速比较慢,这个时候,可以通过修改配置文件,将仓库改成国内的镜像仓库,国内仓库使用较多的是阿里巴巴的仓库。

3.1仓库类型

仓库类型        说明
本地仓库

就是你自己电脑上的仓库,每个人电脑上都有一个仓库,默认位置在当前用户名\.m2\repository

私服仓库

一般来说是公司内部搭建的 Maven私服,处于局域网中,访问速度较快,这个仓库中存放的 jar一般就是公司内部自己开发的 jar

中央仓库

由 Apache团队来维护,包含了大部分的 jar,早期不包含Oracle数据库驱动,从 2019年 8月开始,包含了 Oracle 驱动

现在存了三个仓库,那么jar包如何查找呢?

3.2本地仓库配置

本地仓库默认位置在当前用户名\.m2\repository,这个位置可以自定义,但是不建议大家自定义这个地址,有几个原因:

  1. 虽然所有的本地的 jar都放在这个仓库中,但是并不会占用很大的空间。
  2. 默认的位置比较隐蔽,不容易碰到

技术上来说,当然是可以自定义本地仓库位置的,在 conf/settings.xml中自定义本地仓库位置:

<localRepository>f:\My-Maven-Repository</localRepository>

3.3远程镜像配置

由于默认的中央仓库下载较慢,因此,也可以将远程仓库地址改为阿里巴巴的镜像仓库地址:

<mirror><id>alimaven</id><mirrorOf>central</mirrorOf><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>

这段配置,加在 settings.xml中的 mirrors节点中:

4.Maven常用命令

Maven中有一些常见的命令,如果使用Eclipse需要手动敲命令,如果使用 IDEA的话,可以不用命令,直接点点点就可以了

常用命令 中文含义 说明

mvn clean

清理

这个命令可以用来清理已经编译好的文件

mvn compile

编译

将 Java代码编译成Class文件

mvn test

测试

项目测试

mvn package

打包

根据用户的配置,将项目打成 jar包或者 war包

mvn install

安装/部署

手动向本地仓库安装一个 jar

mvn deploy

上传

将 jar上传到私服

这里需要注意的是,这些命令都不是独立运行的,它有一个顺序。举个简单例子:

我想将jar上传到私服,那么就要构建jar,就需要执行package命令,要打包,当然也需要测试,那就要走mvn test 命令,要测试就要先编译.............................. ,因此,最终所有的命令都会执行一遍。不过,开发者也可以手动配置不执行某一个命令,这就是跳过。一般来说,除了测试,其他步骤都不建议跳过。

当然,如果开发者使用了 IDEA,这些命令不用手动敲,点一下就行:

1.validate 验证工程是否正确,所有需要的资源是否可用。 命令: mvn validate
2.compile 将文件由.java文件编译为.class文件 动态生成target文件目录 命令: mvn compile
3.clean 清空target文件目录 命令: mvn clean
4.test 执行测试方法是否正确 命令: mvn test
5.package 将项目的target文件打包为jar包文件 命令: mvn package
6.verify 对集成测试的结果进行检查,以保证质量达标 命令: mvn verify
7.install 安装打包的项目到本地仓库,以供其他项目使用 命令: mvn install
8.site 项目站点文档创建的处理 命令: mvn site
9.deploy 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程 (了解 用不到)

4.1 通过命令来构建项目

可以直接通过命令来构建一个 Maven项目,不过在实际开发中,一般使用Eclipse或者 IDEA就可以直接创建 Maven项目了。创建命令:

mvn archetype:generate

需要注意:第一次使用该命令,会先下载构建项目所需的jar包

项目创建成功后,就两个文件:

说明对一个任何一个项目而言,最最核心的就是这两个。

pom.xml中,则定义了所有的项目配置

4.2 对项目进行打包

接下来,我们通过mvn package命令可以将刚刚创建的项目打成一个 jar包。

在打包之前,需要配置JDK的版本至少为 7以上,因此,我们还需要手动修改一下pom.xml 文件,即添加如下配置:

<!-- java版本 --> <profile><id>jdk-11</id><activation><activeByDefault>true</activeByDefault><jdk>11</jdk></activation><properties><maven.compiler.source>11</maven.compiler.source><maven.compiler.target>11</maven.compiler.target><maven.compiler.compilerVersion>11</maven.compiler.compilerVersion></properties></profile>

执行打包命令,注意执行所有命令时,命令行要定位到 pom.xml文件所在的目录,看到如下提示,表示项目打包成功。

4.3 将项目安装到本地仓库

如果需要将项目安装到本地仓库,可以直接执行 mvn install命令,注意,mvn install命令会包含上面的 mvn package 过程。

安装到本地仓库之后,这个时候,点开自己的本地仓库,就可以看到相关的 jar了。

Maven项目构建工具相关推荐

  1. Java项目构建工具Gradle是否可以完全替代Maven?

    前言 在Java项目的开发中,需要引入自动化构建工具来帮助我们管理项目的外部依赖包.项目编译.打包等工作.Gradle和Maven是Java世界中两个重要的自动化构建工具,在项目中我们在两者之间如何选 ...

  2. Java技术:项目构建工具Maven最佳替代者gradle介绍

    Maven作为一款非常流行的项目构建工具.基本上是每个Java程序员必备的工具,当然Maven有一些地方不足之处: 1. Maven的配置文件是XML格式的,如果你的项目工程依赖的包很多,那么XML文 ...

  3. jenkins pipeline、用户权限管理、插件下载地址更改、凭证管理、自由风格项目构建、maven项目构建、常用的构建触发器、邮件发送、SonarQube代码审查

    CI持续集成流程 pipeline jenkins安装pipeline插件: 简单使用: 查看流水线语法: 片段生成器: 2.0以后推荐使用声明式语法:右侧下拉框是一些步骤,都可以自动生成 Decla ...

  4. 不使用 Maven 等构建工具,而使用原始方法在 IntelliJ IDEA 中制作 JAR 包

    不使用 Maven 等构建工具,而使用原始方法在 IntelliJ IDEA 中制作 JAR 包 说明 步骤 说明 本文的 原始 Java 程序,指的是不使用项目构建工具(如 Maven)而建立起的一 ...

  5. 不使用 Maven 等构建工具,而使用原始方法在 IntelliJ IDEA 中整合 Tomcat 部署 Web 应用

    不使用 Maven 等构建工具,而使用原始方法在 IntelliJ IDEA 中整合 Tomcat 部署 Web 应用   我们知道,部署 Web 应用可以直接将 Web 应用的文件夹置于 Tomca ...

  6. Java初级项目学习第一讲:Maven项目构建

    Maven项目构建 一.什么是Maven Maven这个单词来自于意第绪语(犹太语),意为知识的积累.Apache Maven是一个(特别是Java编程)项目管理及自动构建工具,由Apache软件基金 ...

  7. Maven项目构建(一):什么是Maven?

    Maven项目构建(一):什么是Maven? ​ 作者:杨景文(javen666.com) Maven是一个项目构建和项目管理的工具. 视频教程:https://www.bilibili.com/vi ...

  8. Maven学习总结(2)——Maven项目构建过程练习

    Maven学习总结(二)--Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项目的过程 一.创建Maven项目 1.1.建 ...

  9. Maven学习总结(二)——Maven项目构建过程练习

    2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(二)--Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验 ...

最新文章

  1. 【old】mapX距离工具源码,delphi7+mapx5.0
  2. 如何用原生js替换字符串中的某个字符(或字符串)为指定的字符串?
  3. PE关于导入表(IAT)知识复习
  4. 运算符重载(c++细节篇二)
  5. CodeForces 1191A---Tokitsukaze and Enhancement
  6. 盐城计算机中专学校,盐城市有哪些中专学校?
  7. 使用Windows Server 2003搭建一个asp+access网站
  8. python3源代码分析_分析一点python源代码
  9. Python迭代器的生成与学习笔记
  10. Java反射----获取Class类实例的4种方式
  11. 微信小程序商城毕业设计毕设作品(8)毕业设计论文
  12. 相关系数excel_数学建模笔记——相关系数
  13. 如何把NDI|HX2视频源通过高清解码器进行解码?
  14. 苹果计算机的优势,苹果笔记本的优缺点详细分析
  15. java poco_DTO与POCO
  16. 华为大数据研发第3轮面试
  17. 70句计算机英语,70句成人英语日常口语大全
  18. html中js计算百钱百鸡,JS经典案例之百钱百鸡
  19. Java开发为何深入人心 ?我来带你解开 Spring、IoC、DI 的秘密~
  20. 新支持APP 公众号聊天在线客服程序源码

热门文章

  1. 快速发展的低压电力线载波技术及其应用展望
  2. 元宇宙:区块链时代的新名字
  3. 免费注册微软Windows Live企业邮箱的方法详解
  4. 【SolidWorks插件】 凯元工具(KYTool)
  5. Real-time noise-aware tone mapping阅读笔记
  6. python识别验证码
  7. Cisco3850交换机设置web GUI访问
  8. 以太大亨 以太坊上的区块链模拟经营类游戏
  9. 输出教学日历表c语言的思路,20182019学年第二学期教学日历及教学环节表(一).pdf...
  10. BUUCTF msic 专题(73)john-in-the-middle