第一次在IDEA使用Maven时花费了大量时间在搞各种配置和环境,特此记录!!
官方下载链接:https://archive.apache.org/dist/maven/maven-3/
百度云:https://pan.baidu.com/s/1pW2Q96rl1Kpmz2REVERycg 提取码: rczr
1、建议下载不要选最新的,我第一次使用的时候是Maven 3.6.3+IDEA 2020.3,结果死活用不了,一直卡在阿里云镜像那,后面选择 Maven 3.3.9+IDEA 2019.3(一般不用IDEA 2020和Maven 3.6.3应该都可以,如果失败就降低版本)。下载Maven时选择bin-zip,然后解压即可。
2、解压后,随便找个地方新建文件夹(作为本地仓库,放置各种jar包),然后去maven目录-conf-setting.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>F:\Environment\repositorylocalRepository>
下面这个是阿里云镜像,要放在setting.xml的mirrors标签里,其他的比如华为云也可以,但是目前最新都要求是采用https,然鹅我试了很多方法都失败了,还是选择用http,后面再去IDEA中忽略安全协议就行。
<mirror>
<id>nexus-aliyunid>
<mirrorOf>*mirrorOf>
<name>Nexus aliyunname>
<url>http://maven.aliyun.com/nexus/content/groups/publicurl>
mirror>
3、配置系统环境变量。这里M2_HOME
和MAVEN_HOME
的区别是maven版本,以前maven 1用的是MAVEN_HOME,后面maven 2和3都是M2_HOME,保险期间,都添加上。
然后需要在PATH中添加maven的bin目录,以便在cmd中使用maven命令。
这两种方式都可以,选一个添加就行,第二种是相对路径更灵活,如果第二种在后面验证时失败就用第一种绝对路径。
4、验证,win+R,输入cmd,然后输入命令 mvn -v,如果成功输出则maven配置成功。
1、这里主要是用IDEA创建JavaWeb,一般都会用多个模块,所以一开始先不要用模板。一直next先进去。
(如果过程中让选择maven,可以先就用IDEA自带的,或者选择自己的,进去之后都会进行默认设置)
2、进行新项目的默认设置
选择自己JDK并勾选自动导包,然后把下面命令填入VM options for importer中(忽略安全协议的,否则无法使用前面的阿里云镜像)。
-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true
注意:有可能输入了这个命令后面镜像依然无法是使用,注意看报错是什么,大概率通过降低版本就可以用,建议换成我用的版本,Maven 3.3.9+IDEA 2019.3,这个是能保证可用的,如果有问题可以私我。
3、因为没有使用Web模板,所以目录结构是不完整的,同时我们要创建子模版,下面先删除src目录,然后创建新模板。
一般来说选择了Web模板都会有webapp目录,不过我即便用了模板也是什么都没有,所以所有目录结构需要自己来创建。
注意:在创建好模板后,可能出现下面错误,先不用管它。
4、自己创建目录src、test、webapp等目录。
5、修改项目的输出目录(out作为整个项目的输出,target作为该模块的输出,所以需要先新建out目录,然后删除项目的target)
注意:artifacts的输出位置需要改,要改到target里面去。
5、这里为了测试,先把两个maven的pom.xml以及web.xml的内容填上,然后创建个index.jsp和TestServlet.java。
<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>org.examplegroupId>
<artifactId>untitledartifactId>
<packaging>pompackaging>
<version>1.0-SNAPSHOTversion>
<modules>
<module>untitled1module>
modules>
<properties>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
<maven.compiler.source>1.8maven.compiler.source>
<maven.compiler.target>1.8maven.compiler.target>
properties>
<dependencies>
<dependency>
<groupId>javax.servletgroupId>
<artifactId>javax.servlet-apiartifactId>
<version>4.0.1version>
<scope>providedscope>
dependency>
<dependency>
<groupId>javax.servlet.jspgroupId>
<artifactId>javax.servlet.jsp-apiartifactId>
<version>2.3.3version>
<scope>providedscope>
dependency>
<dependency>
<groupId>javax.servletgroupId>
<artifactId>jstlartifactId>
<version>1.2version>
dependency>
dependencies>
project>
web.xml
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>testservlet-name>
<servlet-class>TestServletservlet-class>
servlet>
<servlet-mapping>
<servlet-name>testservlet-name>
<url-pattern>/testurl-pattern>
servlet-mapping>
web-app>
TestServlet.java
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class TestServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setCharacterEncoding("utf-8");
resp.getWriter().print("Servlet");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
测试
2、设置本地Tomcat等参数并添加artifacts
3、Deployment,下面红圈部分是我们浏览器输入url时需要添加的。
1、创建好一个Maven项目时可能会出现下面的问题:插件没有下载好,因为镜像出错之类的
报错8个error:
Cannot resolve plugin org.apache.maven.plugins:maven-clean-plugin:2.5
Cannot resolve plugin org.apache.maven.plugins:maven-resources-plugin:2.6
Cannot resolve plugin org.apache.maven.plugins:maven-jar-plugin:2.4
Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.1
Cannot resolve plugin org.apache.maven.plugins:maven-surefire-plugin:2.12.4
Cannot resolve plugin org.apache.maven.plugins:maven-install-plugin:2.4
Cannot resolve plugin org.apache.maven.plugins:maven-deploy-plugin:2.7
Cannot resolve plugin org.apache.maven.plugins:maven-site-plugin:3.3
解决方法:打开cmd,输入mvn help:system,检查是否可以成功下载,直到出现SUCCESS BUILD
如果失败了,看下最后的报错,复制到浏览器翻译下,出现什么无法连接阿里云,无法找到验证之类的错误,就是https引起的,先看看是不是maven-import那个地方的命令没输入,如果输入了依然错误,可能是镜像失效,也可能是maven和idea版本问题。