maven的能解决什么问题
- 由于大的项目中要导入的jar包比较多,而且都需要手工导入,很麻烦,并且还可能存在版本的冲突等。
- 用javac一个一个编译很麻烦,maven可以直接用一个简单的命令编译整个项目源码。
- 项目打包更方便。
优势:依赖管理
假如有十个项目都需要导入jar包,并且jar包有很多重复的,按照传统的方式,则每个项目都需要导入jar包,不仅麻烦,而且代码重用低,而使用maven,它有一个jar包仓库(maven仓库),大部分开源jar包都能在里面找到,因此每个项目就不需要导入jar包,直接写jar包的坐标就可以让maven去管理jar包自动为我们导入
maven仓库种类
启动maven工程在找jar包是,如果本地仓库没有,则会去中央仓库寻找(前提是已联网);如果是公司里,会有个远程仓库(私服),本地仓库没有,会现在远程仓库寻找,没有则会去中央仓库
- 本地仓库,在maven安装目录下的config/settings.xml里,添加/path/to/local/repo,配置本地仓库的地址(默认Default: ${user.home}/.m2/repository)
- 远程仓库(私服),公司里的仓库
- 中央仓库,存放了所有开源jar包
maven项目文件目录结构
src/main 核心代码部分
src/main/resources 配置文件部分
src/test 测试代码部分
src/test/resources 测试配置文件
src/main/webapp 页面资源,js、css等
maven常用命令
mvn clean 清除项目原始本地环境编译的信息
mvn compile 编译,编译src/main目录下的代码,放入target目录下
mvn test 测试,编译src/test测试代码(同时也会编译src/main的代码如果没有)
mvn package 打包(pom.xml中的设置打包类型)
mvn install 安装 前面事情都做了,并且将打包好的项目放入本地仓库
pom.xml存放的信息
- 项目本身信息
- 项目依赖的jar包
<dependency>
<!--公司或组织的名称-->
<groupId>org.mybatis</groupId>
<!--项目名-->
<artifactId>mybatis</artifactId>
<!--版本号-->
<version>x.x.x</version>
</dependency>
- 项目运行环境信息,如:jdk、tomcat等
视频里的图片描述的maven概念模型图
IDEA集成maven插件(mac)
打开idea->右下角Configure—>preferences->搜索maven
maven home directory 里选择本地安装maven的目录
user setting file 里选择本地maven目录下的settings.xml文件
local repository 里如果配置了本地仓库则会自动更改
VM options里填以下参数
然后就可以创建maven项目了