核心概念
- 约定的项目结构
- POM
- 坐标
- 依赖
- 仓库
- 生命周期 / 插件 / 目标
依赖范围
maven 的常用设置
什么是 maven?
- maven 是一个项目管理工具,它的功能主要分为两部分,一是项目中的依赖管理,然后是可以进行项目的构建。maven 中使用 pom.xml 文件来管理文件的结构,pom.xml 文件所包含的信息有项目的基本信息、项目所依赖的 jar 包,以及所用到的 maven 插件。然后 maven 会根据 pom 中列出来的依赖来逐一添加到本地仓库中,就不需要我们自己去手动添加了
- 依赖传递:当我们将项目直接要用到的依赖添加到我们工程中之后,它们所依赖的 jar 包也会被自动添加到 项目中
maven约定的项目结构
- 一般结构
- 根目录,一般以项目名称命名
- src,存放源码
- pom.xml,maven 工程的核心配置文件
- main & test
- java,存放 java 源码
- resources,存放静态文件以及配置文件
pom
- project, object, model
- pom.xml 对于 maven 工程是核心配置文件,与构建过程相关的一切设置都在这个文件中进行设置
- properties 标签中可以定义 maven 的全局变量,在后面的 pom.xml 文件中可以通过 ${ 变量名 }来引用
坐标 -> gav
- groupid:公司或组织域名倒序 + 项目名
- artifactid:模块名
- version:版本
- scope:jar 的应用范围:complie(默认值),test,provided
maven 的常见命令
- complie:将 maven 项目编译并输出到 target 文件夹中
- test:测试命令,执行 src/test/java/ 下的单元测试类
- clean:清理命令,清理之前编译的结果,即删除 target 目录中的原内容
- package:打包命令,将项目打包成 jar 包或者 war 包
maven 指令的声明周期
- clean lifecycle
- default lifecycle
- complie
- test
- package
- install - 安装到本地仓库
- deploy - 部署到远程仓库
- site lifecycle
- 站点声明周期。生成项目报告,站点,发布站点
quickstart
dependencyManagement & dependencise
- dependencyManagement 在父项目中明确版本 version,供子项目引入依赖时参考
- 但 dependencyManagement 中只是声明依赖,并不实现真正的依赖,只有在子项目中才会真正地依赖对应的依赖
random
- 默认的本地仓库地址可以在 conf/settings.xml 中修改 - local repository 的注释