Maven 翻译为"专家"、“内行”,是 Apache 软件基金会主持纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。
Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。其实,除了Java项目以外;Maven 也可被用于构建和管理各种项目,例如 C#,Ruby,Scala 和其它语言编写的项目。
Maven是面向技术层面,针对Java开发的项目管理工具,它提供了构建工具所提供的功能,除了构建功能之外,Maven还可以管理项目结构、管理依赖关系、生成报告、生成Web站点、有助于团队成员之间的协作。
在此教程中,我们重点了解Maven的两大核心功能:项目构建和依赖管理。
清理clean
删除上一次编译得到的class字节码文件
编译compile
将Java源程序编译为class字节码文件
测试test
运行测试程序
报告report
依据测试生成测试报告
打包package
默认情况下,普通Java工程会被打成jar包;JavaWeb工程默认情况下会打成war包
安装install
将jar包或war包存入本地Maven仓库
部署deploy
将war包部署到服务器运行
Maven将构建环节定义为有标准顺序的生命周期。执行构建命令时,都是从生命周期最开始的位置,一直执行到命令指定位置。比如:执行测试,会先执行清理、编译、再执行测试。
在此,详细介绍Maven的安装过程。
因为Maven是Java项目,所以在安装Maven前请务必检查设备的Java环境配置,例如:JAVA_HOME和path等。另外,Maven对jdk版本亦有要求,例如:Maven3.5.4要求jdk不低于1.7。
请在官方网站 http://maven.apache.org/download.cgi 下载安装包并存放至本地。
解压apache-maven-3.5.4-bin.zip至本地,图示如下:
打开apache-maven-3.5.4-bin文件夹,图示如下:
打开apache-maven-3.5.4文件夹,图示如下:
路径为:D:\developmentKit\apache-maven-3.5.4-bin\apache-maven-3.5.4
此过程与配置Java环境变量非常类似。请创建系统变量MAVEN_HOME,其值为:D:\developmentKit\apache-maven-3.5.4-bin\apache-maven-3.5.4
配置完成后,请重新打开cmd窗口,运行mvn -v
命令测试Maven是否安装成功,图示如下:
假若可看见与Maven和JDK相关的信息则表示安装成功;否则,请再次尝试。
当我们采用Maven构建Java项目时就再也不用jar包的方式添加依赖了,而是采用了仓库的方式。Apache团队维护着一个远程仓库(也叫中央仓库),这个仓库里面包含了我们开发中所需的所有jar文件,当我们需要使用相应的jar时只需要去远程仓库中获取即可。当我们获取到jar文件后Maven会将其存放至本地仓库。当下次再使用此jar时就不用舟车劳顿地去遥远的中央仓库获取了,至需从本地仓库获取了。为了进一步提升效率,解决网络卡顿的问题,我们还可以从中央仓库的镜像(私服)获取jar再存放至本地仓库。
在此,详细介绍配置Maven本地参考。
第一步
请在本地创建文件夹作为Maven本地仓库
例如:D:\developmentKit\Repository
第二步
请打开Maven配置文件,路径如下:D:\developmentKit\apache-maven-3.5.4-bin\apache-maven-3.5.4\conf\settings.xml。
<!-- 配置Maven本地仓库 -->
<localRepository>D:\developmentKit\Repository</localRepository>
第三步
保存配置文件。
在此,详细介绍配置Maven中央仓库镜像。
第一步
请打开Maven配置文件,路径如下:D:\developmentKit\apache-maven-3.5.4-bin\apache-maven-3.5.4\conf\settings.xml。
默认的远程仓库速度非常慢,故将其注释掉并采用阿里云的镜像,图示如下:
代码如下:
<!-- 配置中央仓库镜像 -->
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
第二步
保存配置文件。
Maven工程默认JDK版本是1.5或更低版本,而现在主流的开发版本都高于默认版本。所以,我们需对其进行修改
第一步
请打开Maven配置文件,路径如下:D:\developmentKit\apache-maven-3.5.4-bin\apache-maven-3.5.4\conf\settings.xml。
第二步
请在profiles中通过profile修改Maven默认JDK,图示如下:
代码如下:
<!-- 修改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>
第二步
保存配置文件。
在Eclipse中已经包含Maven插件无需再安装插件,但是需要对Maven进行配置。
Group Id:组织ID,一般来讲将公司域名倒置即可
Artifact Id:项目名
Version:版本号
Packaging:打包方式,对于JavaWeb项目其打包方式为war
其中,groupId和artifactId以及version这三者构成了可唯一标识项目在仓库中位置的坐标。
点击Finish后创建项目;但是,项目的配置文件pom.xml报错,图示如下:
错误原因:
缺少web.xml文件
解决方式:
Maven项目 —> 右键 —> Jave EE Tools —> Generate Deployment Descriptor Stub
至此,我们利用Maven创建好了JavaWeb工程,项目结构如下:
看到此处,有些疑惑了:工程中不但有一个Java Resources还有一个src;这两者基本上是一模一样的,这两个有什么区别么? 其实,Java Resources中的内容和src文件夹里代码是一样的,为了方便开发人员更快地阅读Java代码,它以包的形式展现了我们的项目的Java代码。
各文件夹和文件,主要作用如下:
src/main/java
该文件夹用于存放项目的Java源码。
src/main/resources
该文件夹用于存放项目的配置文件(例如:SSM配置文件)。
src/test/java
该文件夹用于存放测试源码。
src/test/resources
该文件夹用于存放测试配置文件。
src/main/webapp
该文件夹用于存放前端代码,相当于之前的WebContent。
target
该文件夹用于存放编译后产生的文件。
pom.xml
该文件为Maven的配置文件。
接下来,我们在webapp下创建index.jsp文件,图示如下:
报错信息:
The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
报错原因:
jsp页面需要servlet的依赖包,但是未找到。
解决方式:
<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>cn.com</groupId>
<artifactId>Maven01</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<!-- 添加Servlet依赖 -->
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
接下来,我们运行Maven的JavaWeb,把项目添加至Tomcat再启动Tomcat即可。
测试地址:http://localhost:8080/Maven01/index.jsp
其余步骤和之前高度类似,在此不再赘述。
在此,详细介绍Maven添加依赖的方式
第一步
打开 https://mvnrepository.com/
第二步
查找依赖
第三步