因为 Maven 不同的版本对 JDK 是有要求的,具体请看官网。
在命令行输入 java -version,查询安装 JDK 是否正确并查询安装的版本。若没有配置好的话,按照一下步骤配置好:
把 apache-maven-x.x.x-bin.zip 解压到目录中(目录路径最好不要有空格和中文)。
打开命令行窗口,输入入 mvn –v 执行,若执行类似如下效果即代表安装成功。
把事先准备好的 Maven 项目,在命令行下输入命令试下:
运行过 Maven 命令才会在你的用户目录生成一个 .m2 目录,该目录下有个目录名 repository,这个就是所谓的本地仓库,主要存放是一些下载的 jar 文件。
本地仓库默认位置在用户目录/.m2/repository,本地仓库不建议在系统盘,最佳实践:
将 Maven 根目录的 conf/settings.xml 拷贝到 .m2 中,作为个人 Maven 配置文件;
maven根目录下拷贝settings.xml文件内容相对多,看不懂, 可以拷贝
day02 Maven\课堂资料\配置和仓库.m2\settings.xml
在 settings.xml 文件中 修改本地仓库的位置。
<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">
<localRepository>你本地仓库的目录位置localRepository>
settings>
在有网情况下,官方中央仓库服务器在国外,所以很大可能出现下载失败的问题,所以我们配置一个中央仓库的镜像来降低下载失败的概率。
<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">
<localRepository>你本地仓库的目录位置localRepository>
<mirrors>
<mirror>
<id>alimavenid>
<name>aliyun mavenname>
<url>http://maven.aliyun.com/nexus/content/groups/public/url>
<mirrorOf>centralmirrorOf>
mirror>
mirrors>
settings>
配置安装的 Maven,设置 setttings.xml 和本地仓库。
确定后之后点击 Next。
填完之后点击 Next。
确定完之后点击 Finish,之后工具会打开解析项目,要等一会儿。
用于填写项目信息,打包方式,添加依赖及插件等。
<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.0modelVersion>
<groupId>cn.wolfcodegroupId>
<artifactId>maven-seartifactId>
<version>1.0.0version>
project>
所谓建索引,就对本地仓库的依赖建立索引,若本地仓库存在 10 个依赖,那么在添加的时候可以搜索得出来,很方便在 pom.xml 添加。但注意搜索得出来是本地仓库已有的前提下。而这个索引在 IDEA 开发工具会自动建好,直接使用即可。
搜索依赖的网站。
在 Maven Projects 窗口,双击对应命令即可:
确定后之后点击 Next。
填完之后点击 Next。
确定完之后点击 Finish,之后工具会打开解析项目,要等一会儿。
在 pom.xml 修改:
<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.0modelVersion>
<groupId>cn.wolfcodegroupId>
<artifactId>maven-webartifactId>
<version>1.0.0version>
<packaging>warpackaging>
project>
自己手动在项目的 main 目录下建 webapp/WEB-INF/web.xml 文件,拷贝如下内容:
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
web-app>
在 pom.xml 配置如下:
<properties>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
<maven.compiler.source>11maven.compiler.source>
<maven.compiler.target>11maven.compiler.target>
properties>
在 pom.xml 文件添加如下依赖:
<dependencies>
<dependency>
<groupId>javax.servletgroupId>
<artifactId>javax.servlet-apiartifactId>
<version>3.0.1version>
<scope>providedscope>
dependency>
dependencies>
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setAttribute("msg", "你好 Maven");
req.getRequestDispatcher("/WEB-INF/a.jsp").forward(req, resp);
}
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Maven
${msg}
在 pom.xml 添加如下插件:
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.mavengroupId>
<artifactId>tomcat7-maven-pluginartifactId>
<version>2.1version>
<configuration>
<port>80port>
<path>/path>
<uriEncoding>UTF-8uriEncoding>
configuration>
plugin>
plugins>
build>
在空间中,使用 X、Y、Z 三个向量可以唯一的定位空间中的任意一个点。
标识项目或者依赖在仓库中的位置。主要由下面构成:
配置项目所要依赖的 jar,在 pom.xml 使用 dependency 元素配置,通过坐标先从本地仓库找,若没有再从远程仓库找。
Maven 在编译,测试,运行的时候,各需要一套 classpath(比如编译的时候会有编译的 classpath,测试的时候会有测试的 classpath)。scope 表明该依赖的项目和三个 classpath 的关系,即表示依赖什么阶段起作用,什么阶段不起作用。
scope 主要可选值:
Maven 的依赖是具有传递性的,比如 A -> B,B -> C,那么 A 间接的依赖于 C,这就是依赖的传递性,其中 A 对于 B 是第一直接依赖,B 对于 C 是第二直接依赖,C 为 A 的传递性依赖。依赖的传递性可以解决依赖繁琐的问题。