一、Maven是什么?
无论如何先来看看官方对于Maven的解释:
Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
大致的意思就是说,Apache Maven 是一个项目管理和自动化构建工具,基于项目对象模型(POM)的概念,可以管理项目的构建、报告以及文档。作为 Apache 组织中的一个颇为成功的开源项目,Maven 主要服务于基于 Java 的项目构建、依赖管理和项目信息管理
Maven 采用了约定优先配置的原则,这些原则如下表所示:
${basedir}
表示项目根目录,在根目录下保存pom.xml
文件和所有的子目录
${basedir}/src/main/java
存放 Java 源代码
${basedir}/src/main/resources
存放项目的资源文件
${basedir}/src/main/webapp
存放 Web 前端文件
${basedir}/src/test/java
存放测试类
${basedir}/src/test/resources
存放测试用的资源
${basedir}/target
存放项目打包后的输出目录
对于一个IDEA工程的话,大概就是下面这个样子:
使用约定优先配置带来的最大好处就是项目的目录结构图非常的统一,不同的开发者在开发一个 Maven 项目的时候,文件存放位置几乎没有差别,省去了很多不必要的麻烦,有利于促进项目团队的标准化。
几乎所有的 Java 项目都会借用一些第三方的开源类库,这些类库可以通过依赖的方式引入到项目中来。但随着依赖的增多,版本冲突、依赖臃肿的问题就会接踵而来。手工解决这些问题是十分枯燥的,幸运的是 Maven 提供了一个优秀的解决方案,它通过一个三维的坐标(<groupId>
、<artifactId>
、<version>
)来准确地定位每一个开源类库。
二、配置Maven环境
如果直接通过DOS命令要要使用MAVEN,而不是直接通过IDEA集成开发环境的话,需要先配置MAVEN环境变量。这和之前java配置环境变量的意义差不多
1、配置MAVEN之前确保已经安装了JAVA
2、官网下载Maven版本并解压,注意不要解压到中文目录 https://maven.apache.org/download.cgi
3、设置环境变量,主要是JAVA_HOME
,MAVEN_HOME
与path
4、打开命令行输入mvn -v
查看配置是否成功
5、在Maven
的conf
目录下包含了一个非常重要的文件 settings.xml
,在这个文件中,我们一般可以修改两个地方。修改下载jar包的目录以及镜像源地址
jar包下载地址:
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
这段默认是注释的,意思是默认jar包是下载到windows安装目录你自己的用户名下的.m2/repository
目录中的,比如:
如果你想修改这个地址,可以使用<localRepository>新的地址</localRepository>
这个jar包下载地址不修改也没有任何影响,不过下面的<mirrors></mirrors>
镜像源节点一定要修改为阿里云的镜像地址,不然Maven会从国外的节点下载jar包...不论是速度还是准确度都有很大的影响,所以一定要在<mirrors></mirrors>
节点中添加下面的语句
<!-- 阿里镜像 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
三、通过IDEA快速创建配置Maven项目
1、创建Maven项目
2、配置Maven项目
创建好工程之后会弹出下面的通知提示,建议像下面这样选择 但是,现在我们的Maven工程还有一定的问题 这个需要我们自己在工程结构中自己配置一下 然后自己手动创建Maven工程需要的文件夹,如下:
但是并不是创建文件夹之后就完事了,每个文件夹都有对应的功能,这个主要是为了工程在编译的时候把相应的文件放在合适的位置
因此,我们还需要标识每个文件夹的功能
src/main/java : Sources java源文件夹
src/main/resources : Resources 项目资源文件夹
src/test/java : Tests 项目测试文件夹
src/test/resources: Test Resources 测试资源文件夹
Comments