前言:
之前用Maven创建sping项目,只知道Maven能帮我管理jar包,对其创建的项目结构也是一知半解。最近看了一些Maven的文章,就写一篇博客记录一下。
Maven是什么
- 在开发中,我们需要很多jar的支持,很容易忘记导入jar包
- 每个java项目的目录结构都没有一个统一的标准,配置文件到处都是,单元测试代码到底应该放在那里也没有一个权威的规范。
因此,我们就要用到Maven——它是一个项目管理工具
- 统一开发规范
- 统一管理jar包
项目结构(统一开发规范)
下面比较一下,首先建立一个普通的Java工程,是这样的:
这个我们都很熟悉,src下建包写代码,那么配置文件放在哪里?单元测试代码放在哪里?没有一个统一标准,更多时候都是开发者的自由发挥,每个人有自己的风格,这并不十分适合团队协作。接下来,看一下使用maven构建一个普通Java项目之后的目录结构:
看到使用Maven构建的普通Java项目,对源代码、单元测试代码、资源放在那里都有计划。
我们可以看到,maven项目的目录约定如图:
管理jar包
我们发现项目中有一个pom.xml,这是Maven的核心配置文件,pom称为Project Object Model(项目对象模型),它用于描述整个Maven项目。
比如,我建立一个MyBatis项目,它的pom.xml长这样子:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--父工程-->
<groupId>com.mao</groupId>
<artifactId>mybatis-study-01</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<!--导入依赖-->
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
</dependencies>
</project>
-
project
工程的根标签 -
modelVersion
模型版本需要设置为 4.0。 -
groupId和artifactId
- groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。
- groupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artifactId是tomcat。
- 比如我创建一个项目,我一般会将groupId设置为cn.mao,cn表示域为中国,mao是我d的姓,artifactId设置为test,表示你这个项目的名称是test。
-
version
版本号,SNAPSHOT意为快照,说明该项目还在开发中,是不稳定的版本。 -
packing
项目打包的类型,可以使jar、war、rar、ear、pom -
dependencies和dependency
需要导入的jar包
比如mybatis需要的jar包
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
</dependencies>
Maven安装与配置详解(Win10)
参考文章:
Maven详解
Maven学习总结(一)——Maven入门