maven工程中不直接将jar包导入工程中。而是在pom.xml
中配置所需jar包的坐标。
在项目实际编写,编译的时候通过pom.xml
文件,根据坐标,在maven仓库(存放jar包的仓库)找到相应的jar包,去运行。(maven通过索引的技术,这样调用jar包的速度和我们直接在项目中导入基本没差别)
maven目录
目录 | 描述 |
---|---|
bin | maven 的命令,比如 mvn tomcat:run |
boot | maven自身的引导程序 |
conf | 配置文件, setting.xml |
lib | 本身运行需要的jar包 |
仓库概念
概念 | 描述 |
---|---|
本地仓库 | maven优先在本地仓库寻找jar包,没有的话会在远程仓库下载 |
远程仓库 | 可以是局域网,也可以是互联网,类似于私服 |
中央仓库 | 基本存了所有的jar包, |
maven寻找jar包顺序 本地仓库->远程仓库->中央仓库
如果本地仓库没有,则会从远程仓库和中央仓库来下载。
本地仓库配置:
/conf/settings.xml
文件中<localRepository>
标签内填写本地的绝对路径即可。
setting
全局setting:conf/setting.xml
用于所有project
用户setting::${user.dir} /.m2/settings.xml
用于用户的project
maven会优先找用户配置,然后再找全局配置。
maven工程
idea中有配好的maven项目模板,但是不如下面的规范,需要我们手动添加。
目录 | 描述 |
---|---|
src/main/java | 源文件,存放.java 文件 |
src/main/resources | 存放项目资源文件,如 spring的 配置文件 |
src/main/webapp | 如果是web项目则会有此目录,存放页面素材 |
src/test/java | 存放单元测试.java 文件,如 JUnit 测试类 |
src/test/resources | 测试资源文件 |
target | 项目输出,class 文件会输出到此目录 |
pom.xml | maven 项目核心配置文件 |
命令
命令 | 描述 |
---|---|
compile | 编译,将 src/main/java 下的文件编译为 class 文件输出到target目录下 |
test | 执行 src/test/java 下的单元测试类 |
package | java工程打成jar包,web工程打成war包 |
install | 打成 jar 包或 war 包发布到本地仓库 |
clean | clean 会删除 target 目录 |
compile->test->package->install
执行后面的命令会自动执行前面的命令
pom
节点 | 描述 |
---|---|
project | 项目根 |
modelversion | pom.xml版本 |
groupId | 项目名称 |
artifactId | 模块名称 |
version | 产品版本 |
packaging | 打包类型,比如jar、war |
name | 项目显示名称,doc文档用 |
description | 项目描述,doc文档用 |
dependencies | 项目依赖配置,填写项目依赖的坐标,没有的话会自动下载 |
build | 项目构建配置 |