一、学习目标
- 了解Maven的作用
- 掌握Maven下载与配置
- 会在IDEA中配置Maven
- 使用Maven构建Web项目
二、maven简介与作用
2.1maven简介
Maven是Apache基金会下一个跨平台的项目管理工具
服务于Java项目的构建、项目信息管理和依赖管理,Maven 项目对象模型(POM),可以通过一小段描述信息来管理项目的构建。
官网地址: https://maven.apache.org/index.html
中央仓库地址: https://mvnrepository.com/
2.2maven作用
提供帮助管理 构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库等等。maven的好处在于可以将项目过程规范化、自动化、高效化以及强大的可扩展性利用maven自身及其插件还可以获得代码检查报告、单元测试覆盖率、实现持续集成等等。
三、maven的安装
3.1安装环境简介
- 系统:Windows10
- JDK版本:JDK1.8
3.2maven下载
最新版本下载地址:http://maven.apache.org/download.cgi
maven3.8.1下载地址:https://archive.apache.org/dist/maven/maven-3/3.8.1/binaries/
这里我选择的是maven 3.8.1版:(本文主要以windows版本为例)
Windows版:apache-maven-3.8.1-bin.zip
Linux版:apache-maven-3.8.1-bin.tar.gz
3.3.maven本地仓库及JDK与镜像配置
1、将下载的apache-maven-3.8.1-bin.zip
压缩包解压到自己磁盘指定位置。(建议不要有中文路径名称)
如图所示我的目录位置为:D:\DevelopmentTool\Environment\Maven\apache-maven-3.8.1
2、接下来我们打开D:\DevelopmentTool\Environment\Maven\apache-maven-3.8.1\conf
目录下的 settings.xml
配置文件,这里主要配置本地仓库的目录、JDK和阿里云镜像,其余暂时不配置。
settings.xml配置文件关键配置示例:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 http://maven.apache.org/xsd/settings-1.2.0.xsd">
<!--1.配置本地仓库位置:-->
<localRepository>D:\DevelopmentTool\Environment\Maven\apache-maven-repository</localRepository>
<pluginGroups></pluginGroups>
<proxies></proxies>
<servers></servers>
<mirrors>
<!--2.配置阿里巴巴镜像源-->
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<mirror>
<id>spring</id>
<mirrorOf>*</mirrorOf>
<name>spring</name>
<url>https://maven.aliyun.com/repository/spring</url>
</mirror>
<mirror>
<id>spring-plugin</id>
<mirrorOf>*</mirrorOf>
<name>spring-plugin</name>
<url>https://maven.aliyun.com/repository/spring-plugin</url>
</mirror>
<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>
</mirrors>
<profiles>
<!--3.配置JDK版本:-->
<profile>
<id>JDK-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
</settings>
3.4maven环境变量配置
1、鼠标右键点击 “我的电脑”
选择 “属性”
选择 “高级系统设置”
打开 系统属性设置 窗口,点击 “环境变量”
按钮,打开设置窗体界面,这里和 jdk 配置类似,如果没有配置jdk环境变量的需要先配置jdk环境变量.
2、添加 MAVEN_HOME
变量:
变量名: MAVEN_HOME
变量值: D:\DevelopmentTool\Environment\Maven\apache-maven-3.8.1
3、在Path
变量中添加 %MAVEN%\bin
值,添加完毕后点击 “确定” 按钮进行保存。
4、测试配置是否成功,打开 cmd命令,输入mvn -v
回车,如果运行如图所示标识配置成功。O(∩_∩)O~
四、IDEA配置maven
配置步骤:
1、打开系统设置,在搜索框中输入搜索关键词 Maven
2、如图所示按照红色箭头标识顺序点击Maven
3、配置maven主目录位置 (Maven homedirectory)
4、勾选Override复选框按钮,将默认配置文件进行覆盖,选择我们之前配置的settings.xml文件
5、勾选Override复选框按钮,将默认仓库位置进行覆盖,选择我们之前新创建的仓库目录(apache-maven-repository)
6、点击确定按钮。
五、IDEA中构建maven项目
在IDEA2020中创建Maven项目
1、点击File 菜单选择 New Project,如图所示在这里项目类型选择Maven,勾选(Create from archetype)复选框,并选择 webapp模板(这里千万不要选错了),点击Next按钮进入下一步。
2、设置项目名称与项目保存的目录位置,点击Next按钮进入下一步。
3、设置maven项目的属性,这里只要确认是否与之前设定的一致即可,如果不同则需要重新设置。点击Finish按钮完成项目创建。
六、Web项目结构简介
6.1默认结构
6.2完善后目录结构
src目录:
/main
- /java:用于存放Java源代码
- /resources:用于存放项目资源文件
- /webapp:web项目根目录
/test
- /java:用于存放测试用例代码
- /resources:用于存放测试相关项目资源文件
/target目录
该目录为Web项目构建工件时所生成的目录,目录中
七、maven项目pom.xml文件
pom文件定义了一个项目所需要的所有信息
节点 | 含义 |
---|---|
project | POM文件的顶级元素 |
modelVersion | POM模型版本,描述这个POM文件是遵循哪个POM版本 |
groupId | 项目组织的唯一标识,通常由域名倒写,如com.company,对应Java包的结构 |
artifactId | 项目唯一标识,对应项目名称 |
version | artifact(生成物)的版本,如1.0.0-SNAPSHOT、1.0.0-RELEASE,1.0.0表示版本号,SNAPSHOT表示快照版,RELEASE表示发行版 groupId、artifactId、version唯一确定一个artifact |
name | 项目的展现名,在Maven生成的文档中使用 |
url | 项目主页的URL,在Maven生成的文档中使用 |
description | 项目的描述,在Maven生成的文档中使用 |
packaging | 项目的打包方式,一般为 jar 或者 war |
节点 | 含义 |
---|---|
parent | 指定父依赖,类似Java中的继承,当前项目可继承父依赖中配置的依赖和属性 需要指定父依赖的groupId、artifactId、version和relativePath |
dependencies | 定义此项目的依赖关系集,在子节点dependency中添加具体的依赖 |
dependency | dependencies的子节点,配置具体的依赖,需要指定具体依赖的groupId、artifactId、version,以及一些扩展配置 scope:compile、provided、runtime、test、system optional:false / true exclusions + exclusion:屏蔽对指定groupId+artifactId的传递依赖 |
properties | 定义一些常量,可在pom文件的其他地方引用 |
build | 构建选项,描述如何编译和打包项目,具体工作通过plugin完成:maven-clean-plugin、maven-resources-plugin、 maven-compiler-plugin、maven-surefire-plugin、 maven-war-plugin 或 maven-jar-plugin、maven-install-plugin、maven-deploy-plugin |
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.aiden</groupId>
<artifactId>education-jsp</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>education-jsp Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>education-jsp</finalName>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
八、IDEA中的maven常用操作
通过菜单View->Tool Windows->Maven,打开Maven操作的界面
功能描述:
- clean: 清除项目编译后的文件
- validate: 验证工程是否正确、所有需要的资源是否可用。可 以验证pom.xml文件的正确性
- compile: 编译项目
- test: 执行项目中的测试用例
- package: 将项目打包
- verify: 运行任何检查,验证包是否有效且达到质量标准
- install: 将项目打包进本地仓库
- site: 生成项目的网页形式的文档
- deploy: 将项目打包发布到远程仓库
九、总结
本文简单介绍maven的下载与配置,并在idea中实现创建maven项目,细节性的会在后续博文中体现出来。此文适合初学者入门学习。
如果你在安装过程中出现配置错误失败情况,可以尝试降低maven的版本,因idea jdk版本不同适配的maven也会有所差异。
学习讨论群: 617530501