官网地址:http://maven.apache.org/

1、Maven介绍

1.1为什么需要使用Maven

之前学Spring和SpringMVC的时候我们需要单独自己去找相关的jar.
这些jar包我们还能通过官网能找到,但是比如我们要找JSTL或者hibernate验证jar及依赖包的时候我们并不是很容易的找的。所以我们希望有种更加方便管理我们jar的工具,maven刚好能帮我们解决这个问题。

1.2Maven是什么?

官方的解释:
Maven是一个项目管理工具,它包含了一个项
目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project
Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在
生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。 当你使用Maven的时候,你
用一个明确定义的项目对象模型来描述你的项目,然后 Maven 可以应用横切的逻辑,
这些逻辑来自一组共享的(或者自定义的)插件。

  • Maven两大核心:
  • 依赖管理:就是对jar包的统一管理
  • 构建项目:项目编码完成后,对项目的编译,测试,打包,部署等操作

初学的时候对maven的概念比较模糊,仅仅知道它可以管理我们的jar包和jar之间的依赖关系,但它的功能并不仅仅局限于此。我们通过安装使用管理来体验吧。

2、Maven安装

注:本文在windows环境安装

2.1安装前提

因为Maven是java项目,所以必须先安装jdk。

2.2官网下载安装文件

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

2.3解压安装到非中文路径中

2.4配置环境变量

2.4.1首先jdk环境变量必须配置

JAVA_HOME环境变量必须要配置

2.4.2配置MAVEN_HOME

到maven解压目录的bin目录的上级

2.4.3Path变量后追加MAVEN_HOME

2.5验证

3、Maven配置

3.1仓库类型介绍

仓库类型 说明
本地仓库 程序员自己电脑上的仓库
私服仓库 局域网中的仓库
速度比中央仓库要快
中央仓库 在互联网中,由Apache团队维护,
包含了基本所有的jar包
版权原因不包含Oracle的驱动包

jar包查找的顺序:

graph LR
A[Maven项目] -- 查找 --> B((本地仓库))
B -- 优先 --> C(私服仓库)
B --没有安装私服--> D((中央仓库))
C --中央仓库--> D

中央仓库地址

3.2本地仓库配置

指定maven的本地仓库地址
比如:C:\tools\maven-repository
那么我们需要在maven的安装路径下的conf文件夹中的setting.xml中设置。

4.常用命令

常用命令 说明
clean:
清理
mvn clean 清理掉原来已经编译好的文件
compile:
编译
将Java编译成Class文件
test:
单元测试
单元测试目录下的所有的类都会执行类名
必须是xxxTest结尾
package:
打包
项目不同会打成对应的包
install:
安装
多个项目共用一个jar包

4.1通过命令构建项目:

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

项目的目录结构:

就默认生成了一个App.java文件,输出一个HelloWorld

POM文件说明

在创建的项目的跟目录下面有一个pom.xml文件,文件pom.xml里有它的项目对象模型 (POM)。这个文件描述了这个项目,配置了插件,声明了依赖

4.2构建一个简单项目

将我们刚刚创建的简单项目打成jar包,只需要在pom.xml所在的路径下执行 :mvn install 命令即可

执行程序:

最新文章

  1. SQL一次查出多个字段的COUNT值
  2. 推荐几款提高.net编程效率的辅助工具
  3. pygame实现的黑白块游戏
  4. 杭电ACM 2052 Picture
  5. cmake的两个命令: option 和 configure_file
  6. 【Java并发编程一】线程安全问题
  7. Git切换远程分支
  8. jackson 字符串转对象
  9. 电脑GIF动图制作方法图文详解
  10. Elasticsearch 安全篇
  11. VMware6.0-vCenter的安装准备及安装
  12. Nestjs 设置静态文件,public
  13. boost生成json中的put操作
  14. vue组件,axios ,路由
  15. linux shell重定向
  16. char型指针和字符串字面量和字符数组
  17. 551. Student Attendance Record I
  18. java面试第十一天
  19. 【Jenkins】定时构建语法
  20. 【转】NHibernate 各种数据库配置

热门文章

  1. Eclipse中 *.properties 文件编码设置
  2. leveldb 学习记录(一) skiplist
  3. AX_UserInfo
  4. python_day12_css
  5. P1613 跑路(倍增 + floyd)
  6. C++ MFC棋牌类小游戏day3
  7. 小程序页面传值e.currentTarget
  8. 131.leetcode-Palindrome Partitioning
  9. gdb调试多进程多线程程序
  10. volatile和synchronized