IDEA创建Maven —— 阿里云镜像、目录结构不完整、Tomcat启动后404


第一次在IDEA使用Maven时花费了大量时间在搞各种配置和环境,特此记录!!

完整的目录结构:
在这里插入图片描述

一、Maven安装以及配置环境变量

官方下载链接:https://archive.apache.org/dist/maven/maven-3/

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
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
  <!-- 下面这行代码需要自己添加,表明自己本地仓库的位置(实际上不加也可以,IDEA也能改)-->
  <localRepository>F:\Environment\repository</localRepository>

下面这个是阿里云镜像,要放在setting.xml的mirrors标签里,其他的比如华为云也可以,但是目前最新都要求是采用https,然鹅我试了很多方法都失败了,还是选择用http,后面再去IDEA中忽略安全协议就行。

<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>*</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</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配置成功。
在这里插入图片描述

二、IDEA创建Maven项目

1、这里主要是用IDEA创建JavaWeb,一般都会用多个模块,所以一开始先不要用模板。一直next先进去。

(如果过程中让选择maven,可以先就用IDEA自带的,或者选择自己的,进去之后都会进行默认设置)
在这里插入图片描述

2、进行新项目的默认设置
在这里插入图片描述

选择自己的Maven以及仓库和配置文件
在这里插入图片描述

选择自己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等目录。

  1. 对着子模板右键选择new-directory(如果不需要子模版,对着项目目录右键就行),创建几个必要的目录。

在这里插入图片描述

  1. 接着Ctrl+Shift+Alt+S,打开项目结构,选择子模块添加Web。这两个路径下要先创建好目录和文件。接着右下角点击创建Aritifact。

在这里插入图片描述

  1. 子模块创建好target,后续生成的包都在这个文件里

在这里插入图片描述

  1. 修改模块的输出目录(这个编译输出是继承父项目,可以自己改)

在这里插入图片描述

5、修改项目的输出目录(out作为整个项目的输出,target作为该模块的输出,所以需要先新建out目录,然后删除项目的target)

在这里插入图片描述

在这里插入图片描述

注意:artifacts的输出位置需要改,要改到target里面去。

在这里插入图片描述

5、这里为了测试,先把两个maven的pom.xml以及web.xml的内容填上,然后创建个index.jsp和TestServlet.java。

1613031303796

pom.xml(untitled,整个项目的)

<?xml version="1.0" encoding="UTF-8"?>
<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>org.example</groupId>
    <artifactId>untitled</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>untitled1</module>
    </modules>
    <properties>
        <!-- 项目的默认构建编码  -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.3.3</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
    </dependencies>

</project>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<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>test</servlet-name>
        <servlet-class>TestServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>test</servlet-name>
        <url-pattern>/test</url-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" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>测试</h1>
</body>
</html>

三、配置Tomcat

1、添加本地Tomcat
在这里插入图片描述

2、设置本地Tomcat等参数并添加artifacts

在这里插入图片描述

3、Deployment,下面红圈部分是我们浏览器输入url时需要添加的。

在这里插入图片描述

4、启动项目,并输入servlet的URL
在这里插入图片描述

在这里插入图片描述

四、创建好Maven项目出现的问题

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版本问题。

猜你喜欢

转载自blog.csdn.net/qq_39763246/article/details/113791089