
??初學(xué)JavaWeb碰到過很多坑,而如今用Maven開始項(xiàng)目,記錄自己從頭到尾的配置方法。
目錄
一、Maven配置
1.更改settings.xml文件
2.配置Maven環(huán)境變量
二、Maven項(xiàng)目建立
1.創(chuàng)建Maven項(xiàng)目
2.配置Maven項(xiàng)目默認(rèn)值
三、Web項(xiàng)目配置
1.Tomcat插件配置
2.Web項(xiàng)目配置
一、Maven配置
??IDEA自帶了Maven的2、3版本,因此不需要上網(wǎng)下載,但仍然需要更改一些配置
1.更改settings.xml文件
??settings.xml文件在IntelliJ IDEA \ plugins \ maven \ lib \ maven3 \ conf目錄下,用記事本或notepad++、sublime text這些編輯器打開,找到localRepository標(biāo)簽(善用Ctrl+F功能)。

2.配置Maven環(huán)境變量
??編輯環(huán)境變量(我的電腦Win10可以按Win+S,然后打上環(huán)境的拼音(huanjing)就可進(jìn)入,不同電腦進(jìn)入方法有微小的差別)



如上圖所示,我的路徑為C:\App\IntelliJ IDEA\IntelliJ IDEA 2017.2.5\plugins\maven\lib\maven3
??Maven環(huán)境配置完畢。
二、Maven項(xiàng)目建立
1.創(chuàng)建Maven項(xiàng)目
新建項(xiàng)目








2.配置Maven項(xiàng)目默認(rèn)值
??此步驟是為了以后創(chuàng)建Maven不需要重新改變參數(shù)而設(shè)定默認(rèn)值,可以先跳過
??如果因?yàn)榇瞬襟E發(fā)生了[ERROR] Maven execution terminated abnormally (exit code 1),并且在本文得不到解決,可以參考[ERROR]
??



三、Web項(xiàng)目配置
1.Tomcat插件配置
??配置Tomcat總是出現(xiàn)各種問題,直接用Maven插件解決就好。
??在自動(dòng)生成的pom.xml文件的build標(biāo)簽下直接加入:
<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標(biāo)簽放到自動(dòng)生成的其他plugins標(biāo)簽內(nèi),這只會(huì)導(dǎo)致沒反應(yīng),直接放到build標(biāo)簽下就不會(huì)出問題。
??以上代碼可以更改的是configuration標(biāo)簽內(nèi)的內(nèi)容,通過增加、修改其中的內(nèi)容,就可以像下載配置Tomcat一樣更改配置。例如port是端口號(hào),path是基本路徑,uriEncoding是編碼。
??如果一切正常,此刻Maven project應(yīng)該會(huì)出現(xiàn)Tomcat7

??此刻已經(jīng)自動(dòng)生成了一個(gè)index.jsp文件,運(yùn)行Tomcat7:run,就可開啟服務(wù)器

??有時(shí)我不想將頁(yè)面放到右側(cè)啟動(dòng),而是和普通Tomcat一樣在上面啟動(dòng),可以點(diǎn)擊上面的Edit Configurations




2.Web項(xiàng)目配置
??當(dāng)前狀態(tài)已經(jīng)可以放jsp了,只要和index.jsp在同級(jí)目錄下就好,但依然不是servlet web項(xiàng)目,我們可以看到,當(dāng)前的目錄都是有缺失的,因此要在src / main目錄,和webapp同級(jí)的位置新建java和resources文件,其中java就是用來(lái)承裝Servlet源碼的地方。


??此刻在java下新建包,我命名為com.demo


??導(dǎo)入包并繼承自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!");
}
}
??此時(shí)發(fā)現(xiàn)很多類都是不能被解析的(con't resolve symbol),那是因?yàn)闆]有依賴,此時(shí)回到pom.xml中,在dependencies(依賴)標(biāo)簽下增加新的依賴:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
??此時(shí)就沒有那些錯(cuò)誤了。注:有些教程沒有<scope>provided</scope>這一項(xiàng),這會(huì)導(dǎo)致出錯(cuò)。
??然后回去在web.xml中添加地址映射(就在web-app標(biāo)簽下):
<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>
此時(shí)我們啟動(dòng)服務(wù)器,并訪問http://localhost:8080/hello,即可看到結(jié)果:
