一、课程目标
【理解】maven的概念
【掌握】maven的使用
【掌握】maven工程的创建
二、maven
2.1 概念
Maven 翻译为"专家"、“内行”,是 Apache 下的一个纯 Java开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。
Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。
Maven 也可被用于构建和管理各种项目,例如 C#,Ruby,Scala 和其他语言编写的项目。
Maven 曾是 Jakarta项目的子项目,现为由 Apache 软件基金会主持的独立 Apache 项目。
2.2 作用
它是一个Apache的开源项目,主要服务于基于Java平台的项目构建、依赖管理和项目信息管理,为了不重复造轮子。
可以帮助我们通过模板快速的创建项目,并管理项目中使用的jar包之间的关联
2.3 基本配置
2.3.1 下载
进入maven官网https://maven.apache.org/下载对应版本的maven
选择对应版本的maven进行下载
2.3.2 安装配置
将下载好的压缩包进行解压得到maven的文件夹
为了使在任何地方都可以使用maven指令所以需要进行环境变量的配置
(1)配置maven第三方使用环境变量MAVEN_HOME指向maven解压目录(bin的上一级)
(2)配置path将maven的bin目录加入path中
(3)在cmd中输入mvn -v进行测试
2.3.3 使用配置
(1)本地仓库配置
maven可以使用本地仓库+远程镜像源的形式进行jar包的管理,当需要使用对用jar包时,会根据指定的坐标先从本地仓库中进行查找,如果没有则自动上对应的镜像源进行下载到本地仓库,如果已存在则直接使用(这一特性虽然方便但有时也会造成项目的瘫痪)
首先在你想保存jar仓库的位置创建文件夹(一般在maven文件夹中创建)
在maven文件conf下找到settings.xml文件
在大约50行左右位置添加(地址改为创建存储jar包仓库的位置)
<localRepository>F:\apache-maven-3.6.3\res</localRepository>
(2)镜像源配置
maven可以通过坐标帮我们统一管理jar包,但是默认是从apache(外网镜像)进行下载,在国内使用可能出现网络中断导致的jar下载不完全问题,阿里为解决国内程序员maven的使用特意公开了自己的maven镜像提供下载(阿里拥有基本全部的jar包)
在maven文件conf下可以找到settings.xml文件
因为国外的服务器下载jar包很慢所以我们改为阿里云服务器(大约在150行左右)
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
(3)修改maven默认jdk版本
maven之后可以用来进行项目的搭建,在上传至服务器时可能需要编译java的源码 ,默认使用的jdk版本与maven版本相关,需要修改为指定版本防止,版本过低导致的编译不通过
在<profiles>标签下添加一个<profile>标签,修改maven默认的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>
settings.xml
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- 修改jar包仓库位置 -->
<localRepository>F:\apache-maven-3.6.3\res</localRepository>
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
</servers>
<!-- 修改镜像源jar包下载位置 -->
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<!-- 修改默认编码jdk版本 -->
<profiles>
<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>
2.4 使用
对于maven我们常见的使用方式:使用maven进行项目的快速搭建,使用pom.xml进行jar包的统一管理,使用maven对应的指令(开发工具中对应的插件)进行项目的声明周期管理,创建模块化项目开发
1、通过坐标管理项目中jar包
maven的坐标是固定的,一般在使用过程中直接通过https://mvnrepository.com/进行查找
一般根据使用的热度进行下载(如果下载的是框架集成的jar包注意之间的版本冲突)
<dependencies>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
所有坐标书写在dependencies标签中
GroupId:jar包所在包名
artifactId:jar包名
version:版本
2、配置项目使用插件(idea默认集成)
书写在build的plugins标签中,创建maven项目时模板后自动添加与生命周期对应
会在右侧边栏中展示插件
3、将项目拆分成多个工程并进行依赖(之后微服务阶段进行讲解)
maven多模块开发
2.5 idea使用maven快速创建web项目
创建maven项目勾选使用模板快速创建
输入相关信息创建项目
name:项目名
location:项目存储地址
groupid:项目分组(默认创建的包)
artifactid:项目名(自动与name一一致无需更改)
version:项目版本号(根据实际进行修改)
idea默认集成了maven,修改默认的配置
将maven改为我们安装的maven
将settings修改为我们修改过的配置
将保存修改为我们指定的路径(默认会自动读取maven设置)
main与src功能一致都是代表根目录,在main下继续创建java与resource
java:用于存放所有java代码的目录(相当于之前项目的src)
resource:用于存放当前项目配置的目录(相当于之前项目的src)
webapp:用于存放web页面相关的目录