初学JavaWeb碰到过很多坑,而如今用Maven开始项目,记录自己从头到尾的配置方法。
目录
一、Maven配置
1.更改settings.xml文件
2.配置Maven环境变量
二、Maven项目建立
1.创建Maven项目
2.配置Maven项目默认值
三、Web项目配置
1.Tomcat插件配置
2.Web项目配置
一、Maven配置
IDEA自带了Maven的2、3版本,因此不需要上网下载,但仍然需要更改一些配置
1.更改settings.xml文件
settings.xml文件在IntelliJ IDEA \ plugins \ maven \ lib \ maven3 \ conf目录下,用记事本或notepad++、sublime text这些编辑器打开,找到localRepository标签(善用Ctrl+F功能)。
2.配置Maven环境变量
编辑环境变量(我的电脑Win10可以按Win+S,然后打上环境的拼音(huanjing)就可进入,不同电脑进入方法有微小的差别)
如上图所示,我的路径为C:\App\IntelliJ IDEA\IntelliJ IDEA 2017.2.5\plugins\maven\lib\maven3
Maven环境配置完毕。
二、Maven项目建立
1.创建Maven项目
新建项目
2.配置Maven项目默认值
此步骤是为了以后创建Maven不需要重新改变参数而设定默认值,可以先跳过
如果因为此步骤发生了[ERROR] Maven execution terminated abnormally (exit code 1),并且在本文得不到解决,可以参考[ERROR]
三、Web项目配置
1.Tomcat插件配置
配置Tomcat总是出现各种问题,直接用Maven插件解决就好。
在自动生成的pom.xml文件的build标签下直接加入:
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8080</port>
<path>/</path>
<uriEncoding>UTF-8</uriEncoding>
</configuration>
</plugin>
</plugins>
注意,不要擅自将plugin标签放到自动生成的其他plugins标签内,这只会导致没反应,直接放到build标签下就不会出问题。
以上代码可以更改的是configuration标签内的内容,通过增加、修改其中的内容,就可以像下载配置Tomcat一样更改配置。例如port是端口号,path是基本路径,uriEncoding是编码。
如果一切正常,此刻Maven project应该会出现Tomcat7
此刻已经自动生成了一个index.jsp文件,运行Tomcat7:run,就可开启服务器
有时我不想将页面放到右侧启动,而是和普通Tomcat一样在上面启动,可以点击上面的Edit Configurations
2.Web项目配置
当前状态已经可以放jsp了,只要和index.jsp在同级目录下就好,但依然不是servlet web项目,我们可以看到,当前的目录都是有缺失的,因此要在src / main目录,和webapp同级的位置新建java和resources文件,其中java就是用来承装Servlet源码的地方。
此刻在java下新建包,我命名为com.demo
导入包并继承自servlet类
package com.demo;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends javax.servlet.http.HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
response.setContentType("text/html");
response.getWriter().print("Servlet project create is success!");
}
}
此时发现很多类都是不能被解析的(con't resolve symbol),那是因为没有依赖,此时回到pom.xml中,在dependencies(依赖)标签下增加新的依赖:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
此时就没有那些错误了。注:有些教程没有<scope>provided</scope>这一项,这会导致出错。
然后回去在web.xml中添加地址映射(就在web-app标签下):
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>com.demo.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
此时我们启动服务器,并访问http://localhost:8080/hello,即可看到结果: