ApacheMaven是一个软件项目管理和理解工具。基于项目对象模型(POM)的概念,Maven可以从中心信息块管理项目的构建、报告和文档
每次编写项目都需要导入大量项目所依赖的jar包
对于初学者来说,目前Maven只是自动帮助我们导入项目所需要的jar包
Maven的核心思想:约定大于配置:
意思就是约定优于配置意味着通用化,标准化,意味着开发者都需要遵循同一套约定。这样,当一个开发者要看另一个开发者写的程序的时候,就会很容易上手,因为他了解同一套约定,减少了重新学习的成本。
Maven的安装与配置
Maven的下载与安装
Maven下载地址
下载后解压即可
Maven配置环境变量:
在系统环境中,配置如下:
- M2_HOME maven目录下的bin目录
- MAVEN_HOME maven的目录
- 在系统path中配置%MAVEN_HOME\bin
修改settings.xml(settings.xml在conf文件中),添加镜像服务器设置:
-
镜像:加速我们的jar包下载
-
国内建议使用阿里云的镜像:
-
随后添加阿里云镜像的配置:
<mirror>
<id>maven-default-http-blocker</id>
<mirrorOf>external:http:*</mirrorOf>
<name>Pseudo repository to mirror external repositories initially using HTTP.</name>
<url>http://0.0.0.0/</url>
<blocked>true</blocked>
</mirror>
<mirror>
<id>nexus-aliyun</id>
<name>nexus-aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
在<mirrors></mirrors>
内部添加
- 本地仓库的配置:
本地仓库是指存在于我们本机的仓库,在我们加入依赖时候,首先会跑到我们的本地仓库去找,如果找不到则会跑到远程仓库中去找。
Maven的本地仓库是用来存储所有项目的依赖关系(插件jar和其他文件,这些文件被Maven下载)到本地文件夹
默认的本地仓库地址在c盘下面,如果开发的项目比较大,可能会占用过多的c盘空间,而且c盘会随着系统的损坏可能有格式化的风险。通常情况下,可改变默认的 .m2 目录下的默认本地存储库文件夹到其他盘并取一个有意义的名称
如我的是D:\Maven\apache-maven-3.8.1\maven-repo,在settings.xml文件中将仓库位置修改为D:\Maven\apache-maven-3.8.1\maven-repo即可
在idea中使用maven
创建一个maven项目:
- 勾选Create from archetype使用maven的模板
idea中的Maven设置:
- pom.xml文件:pom非常给力,提供一站式支持(一步到位),即包括了:配置文件,缺陷跟踪系统(defect tracking system),组织和许可证(licenses),项目所在的URL地址,项目依赖,以及其他所有的和代码生命周期相关的方面。
pom.xml
基本内容:
POM包括了所有的项目信息
groupId:项目或者组织的唯一标志,并且配置时生成路径也是由此生成,如org.myproject.mojo生成的相对路径为:/org/myproject/mojo
artifactId:项目的通用名称
version:项目的版本
packaging:打包机制,如pom,jar,maven-plugin,ejb,war,ear,rar,par
name:用户描述项目的名称,无关紧要的东西,可选
url:应该是只是写明开发团队的网站,无关紧要,可选
classifer:分类
其中groupId,artifactId,version,packaging这四项组成了项目的唯一坐标。一般情况下,前面三项就可以组成项目的唯一坐标了。
其中基本组建如下:
<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>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<packaging>...</packaging>
<!-- 依赖配置 -->
<dependencies>...</dependencies>
<parent>...</parent>
<dependencyManagement>...</dependencyManagement>
<modules>...</modules>
<properties>...</properties>
<!-- 构建配置 -->
<build>...</build>
<reporting>...</reporting>
<!-- 项目信息 -->
<name>...</name>
<description>...</description>
<url>...</url>
<inceptionYear>...</inceptionYear>
<licenses>...</licenses>
<organization>...</organization>
<developers>...</developers>
<contributors>...</contributors>
<!-- 环境设置 -->
<issueManagement>...</issueManagement>
<ciManagement>...</ciManagement>
<mailingLists>...</mailingLists>
<scm>...</scm>
<prerequisites>...</prerequisites>
<repositories>...</repositories>
<pluginRepositories>...</pluginRepositories>
<distributionManagement>...</distributionManagement>
<profiles>...</profiles>
</project>
到这里Maven配置完成,可以编写Maven项目了。