目录
一.Idea配置Maven插件
二.构建Maven工程
三.pom文件配置
四.解决Unable to import maven project报错
五.编写代码
六.依赖范围
一.Idea配置Maven插件 在使用 Idea 开发项目时,可以整合 Maven 插件进行一键构建和依赖管理。 Idea 自带 Maven 插件,我们也可以指定自己下载的 Maven 插 件。 依据图片指示,选择本地 maven 安装目录,指定 settings 配置文件。
File-->Settings-->
注意本地仓库位置如果没自动检测则需要自己配置。配置时别忘了点击override。
之后,点击 File — New Projects Settings(因idea的版本不同,也可能是Other Settings) — Settings for NewProjects ,再像上面一样设置一遍 Maven ,使得新创建的项目也可以使用同样的 Maven 配置。二.构建Maven工程 接下来我们构建一个 Maven 的 Web 工程: 1 打开 idea ,选择创建一个新工程
配置GroupId和ArtifactId
点击next,出现下面的页面,一般不用改,点击next,
然后配置项目名(一般不用改,和ArtifactId一样)和项目存放路径
点击Finish。
然后我的idea就报了一个错误,说是不能导入maven项目,应该是选中的那个模板
Unable to import maven project:
问题解决:
看了这两篇文章:
IDEA Unable to import maven project: See logs for details (maven的坑)_Certain_的博客-CSDN博客_see
IDEA Maven 报 Unable to import maven project解决方案_仰望晴空的网痴的博客-CSDN博客
但是我照着修改之后却仍然Unable to import maven project:
又胡乱捣鼓了大半天,我把我上篇文章给maven配置jdk8时的代码修改了下,原来如下:
jdk-1.8
修改后:
jdk18
然后又在
之后再启动就好了 !
另一个问题:
大概意思是连接不上谷歌服务器。
解决方式:禁用 android support 插件重启即可。
成功启动:
一小会功夫下载一些
看看项目结构:
手动添加 src/main/java 目录,此时该目录还不能写 Java 代码。 6 将 src/main/java 目录设置为 Java 代码目录。右键java文件夹: 设置之后会发现java文件夹下可以创建java文件 同理在main下创建resources文件夹(用于存放配置文件),右键--》Mark Drractory as -->Resources Root 再在src下创建test文件夹,然后在test下创建java和resources文件夹,用上面相同的方法分别设置为Test Sources Root 和 Test Resources Root 即可。 配置完成的项目结构如下:三.pom文件配置
pom.xml文件配置了maven项目的所有信息。
pom 文件最上方是项目基本信息:groupId groupId 一般定义项目组名,命名规则使用反向域名。例如com.itbaizhan artifactId artifactId 一般定义项目名,命名使用小写字母。项目发布后,它的坐标是 groupId+artifactId 。 version version 定义版本号。版本号一般有三段,第一段:革命性的产品升级。第二段:新功能版本。第三段:修正一些 bug 。 packaging packaging 定义打包方式。com.first mavenDemo1.0-SNAPSHOT war
UTF-8 1.8 1.8
在这里当要引入依赖时发现仍出现Unable to import maven project的问题,哎,麻了。
先说如何引入,登陆上面的网址,在搜索框搜索想要的api,比如我要引入servlet,输入servlet
选择版本
我这里选择3.0.1
要把其中的
同样的方法添加jsp,搜索jsp即可,我选择2.2版本,复制代码时也把
最后
为什么之前的 web 项目中没有引入 jsp 和 servlet 的 jar 包? 因为之前项目中使用的是 tomcat 中的 jsp 和 servlet 中的 jar 包,在项目中没有引入。javax.servlet javax.servlet-api3.0.1 provided javax.servlet.jsp jsp-api2.2
org.apache.tomcat.maven
tomcat7-maven-plugin
2.1
8080
/
UTF-8
tomcat7
四.解决Unable to import maven project报错
在经过上面的修改无果后,我准备重装Idea,idea2019和maven版本可能不兼容了,所以我又参考了下面的文章,下载了比较新的idea2022.1
IntelliJ IDEA 2022.1最新激活破解教程(永久激活,亲测有效) - 异常教程
最新IDEA专业版安装教程(2021.3.2)_C.DLording的博客-CSDN博客_idea专业版安装教程
注意host文件位置:C:WindowsSystem32driversetc
我看了看,好像我的host文件之前并没有为idea配置过,所以开始放心破解过程。
亲测有效!
五.编写代码
接下来编写
Servlet
和
Jsp
代码:
MyServlet.java:
package com.first.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/demo1")
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//跳转到一个jsp页面
req.getRequestDispatcher("hello.jsp").forward(req,resp);
}
}
hello.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
你好,程序员!
通过maven的tomcat插件启动服务器:
方式一:
输入命令,tomcat7:run,即可启动Tomcat
方式二:
可以看到右上角已经配置完成
访问发现状态码500,请看下节。
六.依赖范围
访问
servlet
后,发现报
500
异常,这是为什么呢?
这是由于项目中引入了
Servlet
和
Jsp
的
jar
包,而在项目运行时,Tomcat
要使用它自带的
Servlet
和
Jsp
的
jar
包,这样就造成了
jar
包冲
突。但如果项目不引入
Servlet
和
Jsp
的
jar
包,则根本无法通过编
译。
此时可以设置依赖的作用范围解决该问题,设置
Servlet
和
Jsp
的
jar包只在编译期起作用,运行时不起作用,这样不仅可以通过编译,
还能在运行时避免
jar
包冲突。
通过在
中添加
,可以设置依赖的作用范围,有以下取值:
compile
默认范围。表示该依赖在编译和运行时生效,项目打包时也会将该依赖打包进去。
provided
使用此依赖范围的
Maven
依赖,编译和测试时有效,但在运行时无效。典型的例子是
servlet-api
,在运行时
Web
容器已
经提供依赖,就不需要
Maven
重复地引入一遍。
runtime
runtime
范围表明编译时不需要生效,而只在运行时生效。典型的例子是
JDBC
驱动包,编译时只需要
JDK
的
JDBC
接口即
可,只有运行项目时才需要具体的
JDBC
驱动。
test
test
范围表明使用此依赖范围的依赖,只在编译和运行测试代码的时生效,程序的正常运行不需要此类依赖。典型的例
子就是
JUnit
,它只有在编译测试代码及运行测试的时候才需
要。
system
如果有些你依赖的
jar
包没有
Maven
坐标的,它完全不在Maven
体系中,这时候你可以把它下载到本地硬盘,然后通
过
system
来引用。(不推荐使用)
所以对于Servlet和Jsp依赖,我们添加依赖范围为provided即可。
javax.servlet
javax.servlet-api
3.0.1
provided
javax.servlet.jsp
jsp-api
2.2
provided
最好再刷新一下maven
重启项目,即可正常访问
Servlet
和
Jsp 。
javax.servlet javax.servlet-api3.0.1 provided javax.servlet.jsp jsp-api2.2 provided
最好再刷新一下maven
重启项目,即可正常访问 Servlet 和 Jsp 。



