目錄
I.創建簡單項目
進入idea創建項目
在接下來的頁面中會直接顯示maven選項,由於我們索要創建的是一個最簡單的maven項目,所以說我們需要做的是勾選圖示所示的“Create From Archetype”複選框,在下面的下拉選項中我們選擇“quickstart”,之後點擊【Next】
在接下來的面板中,我們填寫maven的座標,“groupId”,“artifactId”,以及“version”,其中groupId是公司域名的反寫,而artifactId是項目名或模塊名,而version就是該項目或模塊所對應的版本號。填寫完之後,點擊【Next】
在接下來的面板中選擇本地的maven,選擇完成後點擊【Next】
比如說我的maven選擇如下所示:
在接下來的慢板中填寫項目名,比如說我的填寫如下,填寫完成後點擊【Finish】
之後就進入了maven的主頁面,在這裏maven將自動下載一系列的maven依賴,當所有的都自動完成後,創建的maven項目結構如下所示:
在main和test目錄中創建resourses目錄
點擊file----project structure ------選擇modules
將resourses設置爲存放靜態文件的目錄
將java目錄設置爲sourse目錄(如果不設置在寫代碼時發現不能創建java文件)
II.創建簡單web項目
1.選擇Maven項目->創建模版->maven簡單web程序
GroupId一般是公司的倒寫,Artifactid是項目文件名,Version不用改
三個框分別爲Maven地址、settings.xml地址、倉庫地址(後兩個框一開始是灰色的,要把後面的複選框點開)
不用改,直接完成
然後生成了初始項目目錄
讓Maven能自動導入:
2.配置Maven項目默認值
此步驟是爲了以後創建Maven不需要重新改變參數而設定默認值,可以先跳過
如果因爲此步驟發生了[ERROR] Maven execution terminated abnormally (exit code 1),並且在本文得不到解決,可以參考[ERROR]
更改默認地址
,在VM Options裏面填入 -DarchetypeCatalog=internal
完成。
III、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
如果你的右側沒有Maven project欄,就先去左下角的窗口中,將Maven project點出來。
此刻已經自動生成了一個index.jsp文件,運行Tomcat7:run,就可開啓服務器
此時訪問http://localhost:8080/即可看到helloworld頁面。
有時我不想將頁面放到右側啓動,而是和普通Tomcat一樣在上面啓動,可以點擊上面的Edit Configurations
點加號,選擇Maven
該默認的名稱,下面的框打上tomcat7:run(如果沒問題,在你剛打上t的時候就會出提示)
現在只要按上面綠色的三角就可以啓動服務器了
2.Web項目配置
當前狀態已經可以放jsp了,只要和index.jsp在同級目錄下就好,但依然不是servlet web項目,我們可以看到,當前的目錄都是有缺失的,因此要在src / main目錄,和webapp同級的位置新建java和resources文件,其中java就是用來承裝Servlet源碼的地方。
然後配置文件夾屬性:
別忘了最後點最下面的apply(應用)
此刻在java下新建包,我命名爲com.demo
在包下新建HelloWorld類
1.png
導入包並繼承自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,即可看到結果: