Maven教程1(介绍安装和配置)
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 命令即可
执行程序:
最新文章
- SQL一次查出多个字段的COUNT值
- 推荐几款提高.net编程效率的辅助工具
- pygame实现的黑白块游戏
- 杭电ACM 2052 Picture
- cmake的两个命令: option 和 configure_file
- 【Java并发编程一】线程安全问题
- Git切换远程分支
- jackson 字符串转对象
- 电脑GIF动图制作方法图文详解
- Elasticsearch 安全篇
- VMware6.0-vCenter的安装准备及安装
- Nestjs 设置静态文件,public
- boost生成json中的put操作
- vue组件,axios ,路由
- linux shell重定向
- char型指针和字符串字面量和字符数组
- 551. Student Attendance Record I
- java面试第十一天
- 【Jenkins】定时构建语法
- 【转】NHibernate 各种数据库配置