Maven Basics

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
2
3
4
5
6
7
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
</dependencies>
  • Maven会自动下载JAR所依赖的其他JAR
1
2
3
4
5
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.16</version>
</dependency>
  • 例如spring-webmvc依赖很多其他JAR,但当你引用spring-webmvc时,你无需管理其他依赖,Maven会自动管理并下载其他所需的依赖

本地仓库与中央仓库


项目打包

  • Maven可将Java项目打包为JAR,WAR
  • 项目打包是通过Plugin实现
  • Maven输出JAR包插件: maven-assembly-plugin
  • 运行JAR in Terminal
    • java -jar jav_name