文章目录
Maven是一个用于 自动化构建项目和 管理项目依赖的工具。
本篇会介绍如何构建一个maven项目,如何添加依赖、插件,如何运行maven项目。
Maven环境搭建
Maven环境搭建可以参考这篇文章,在这里就不累述了。
创建maven项目
File>New>Project,选择Maven
。
本例使用maven的原型模板(org.apache.maven.archetypes:maven-archetype-webapp
)创建一个web项目。
- Maven home path,选填的是apache-maven-3.8.3的安装路径。
- User setting file,选填的是apache-maven-3.8.3安装路径下conf目录里的settings.xml。settings.xml内容如下。
注意哈,这里通过<mirror/>
标签配置了Maven中央仓库的阿里镜像。
<?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 https://maven.apache.org/xsd/settings-1.2.0.xsd">
<localRepository>D:\software\apache-maven-3.8.3-bin\apache-maven-3.8.3\usrlibs</localRepository>
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
</servers>
<mirrors>
<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>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
<profiles>
</profiles>
</settings>
下面简单介绍下使用阿里镜像的原因。
Maven中央仓库的服务器是在国外的,国内与国外之间存在的防火墙导致国内访问国外网站时网速非常缓慢,当网速慢到一定程度时,可能导致maven项目构建失败。如下图所示,程序挂死在Generating project in Batch mode
,不再往下执行。
如果maven中央仓库的服务器在国内就好了,这样就能解决上述因为网络问题导致下载异常的问题了。阿里镜像、豆瓣镜像或者清华镜像,其实就相当于国内的maven中央仓库,它们与国外的maven中央仓库全量同步,可有效解决上述问题。
- Local repository,选填的是settings.xml中
<localRepository/>
标签中写入的值,即D:\software\apache-maven-3.8.3-bin\apache-maven-3.8.3\usrlibs
。
自动从阿里镜像下载的依赖全部保存在本机计算机的这个路径下,这也就是我们说的本地仓库。
创建好的项目中自动包含了jdk1.8、junit、hamcrest-core,如下所示。
添加依赖、插件
添加依赖:javax.servlet-api 和 javax.servlet.jsp-api。
web项目离不开servlet和jsp,接下来给刚刚创建的项目添加这两个依赖。
- 到maven依赖查询网站mvnrepository.com里查找依赖,我们选择最多人使用的版本。
- 修改pom.xml,引入这两个依赖。
- 鼠标光标悬停在pom.xml,鼠标右键,Maven>Reload project,下载依赖并添加到项目中。
详细操作过程如下图所示。
<!-- 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>
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.2.1</version>
<scope>provided</scope>
</dependency>
添加maven插件
- 到maven.apache.org查找插件。
- 修改pom.xml引入插件。
- 鼠标光标悬停在pom.xml,鼠标右键,Maven>Reload project下载插件并添加到项目中。
详细操作过程如下图所示。
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
运行项目
运行maven项目有两种方式:命令行方式或者使用本地tomcat运行。
使用命令行方式运行项目
Run>Edit Configurations,点击+,选Maven
,Command Line输入tomcat7:run
,保存。
运行该项目,然后打开浏览器访问相应网址。
详细过程如下图所示。
使用本地tomcat运行maven项目
要使用本地tomcat运行maven项目,当然得先在本地计算机上安装tomcat。tomcat的安装及验证比较简单,本文就不累述。
Run>Edit Configurations,点击+,选Tomcat Server:Local
,然后
进入Server这个tab页,将Tomcat Server配置为tomcat的安装路径。
进入Depolyment这个tab页,添加demo3:war。
详细操作过程如下图所示。
端口占用问题
在这里可能会遇到端口占用问题,可以使用下列的命令解决。
# 查看端口占用情况
netstat -ano | findstr 8080
# 杀死进程
taskkill /pid 进程id
# 强制杀死进程
taskkill /pid 进程id /f
# 强制杀死多个进程
taskkill /pid 进程1的id /pid 进程2的id /f