Maven介绍
- 项目管理工具,对软件项目提供构建与依赖管理
- Apache下的Java开源项目
- 为Java项目提供了统一的管理方式
Maven核心特性
- 项目设置遵循统一的规则,保证不同开发环境的兼容性 (Eclipse, IDEA, NetBeans)
- 强大的依赖管理,项目依赖组件自动下载,自动更新(JARs,dependencies)
- Maven中央仓库
- 可扩展的插件机制,使用简单,功能丰富 (自定义的插件可以加入到Maven中)
Maven的坐标
- GroupId:机构或者团体的英文,采用逆向域名的形式书写
- ArtifactId:项目名称,说明其用途,例如:cms, oa
- Version:版本号,一般采用版本 + 单词 形式书写 例如: 1.0.0.RELEASE
Maven项目标准结构
目录 | 用途 |
---|---|
root | 根目录,用于保存pom.xml |
main/java | Java源代码目录 |
main/resources | 资源目录,保存配置文件,静态图片等 |
test/java | 测试类的源代码 |
test/resources | 测试时需要使用的资源文件 |
target | 项目输出的目录,用于储存jar,war文件 |
target/classes | 字节码的编译输出目录 |
pom.xml | 项目对象模型文件(Project,Object,Model) |
Maven依赖管理
- 利用dependency自动下载,管理第三方JAR
- 在pom.xml文件中配置项目依赖的第三方组件
- Maven自动将依赖从远程仓库(中央仓库)下载至本地仓库,并在工程中引用
1 | <dependencies> |
- Maven会自动下载JAR所依赖的其他JAR
1 | <dependency> |
- 例如spring-webmvc依赖很多其他JAR,但当你引用spring-webmvc时,你无需管理其他依赖,Maven会自动管理并下载其他所需的依赖
本地仓库与中央仓库
项目打包
- Maven可将Java项目打包为JAR,WAR
- 项目打包是通过Plugin实现
- Maven输出JAR包插件:
maven-assembly-plugin
- 运行JAR in Terminal
java -jar jav_name