利用Eclipse建立maven專案並生成META-INF和WEB-INF目錄
1、使用eclipse外掛建立一個web project
首先建立一個Maven的Project如下圖
我們勾選上Create a simple project (不使用骨架)
這裡的Packing 選擇 war的形式
由於packing是war包,那麼下面也就多出了webapp的目錄
2、由於我們的專案要使用eclipse釋出到tomcat下面,這裡我們需要先把專案轉成dynamic web project
在我們的專案上點選右鍵,選擇properties 並找到 Project Facets ,並點選Convert to faceted form… 如下圖:
然後勾選Dynamic Web Module 並點選ok 如下圖:(3.0只有tomcat7才支援, 在部分IDE下面可以繼續切換版本,比如更換到3.1標準的servlet)
接下來觀察我們的專案結構,多了一個web content目錄
注:
1)如果在結構轉換的時候沒有出現Dynamic Web Module選項,可以參考我的上一篇博文。
2)如果沒有自動生成以上的資料夾,手動建立的效果是一樣的,無需擔心。
3、雖然此時我們可以釋出到tomcat中,但這不符合maven的結構,我們還要做如下修改
把上圖WebContent下面兩個目錄 META-INF ,WEB-INF 直接剪下到src/main/webapp目錄下,並刪掉WebContent目錄,那麼現在的專案結構如下圖:
然後我們要修改釋出規則,右鍵點選專案, 選擇 Deployment Assembly
選擇WebContent,把它remove掉,測試類我們也不需要釋出,test的兩個目錄頁可以remove
接著重新指定一個web的路徑,點選add,選擇Folder – 〉 next
在src下找到webapp目錄,然後finish
最後一步,我們要把當前的build path 指向 Maven Dependency, 直接點選add,選擇Java Build Path Entries 然後next
注:只有maven專案新增完Dynamic Web Module之後才能找到Maven Dependency選項。如果沒有找到該選項,說明你建立的Maven專案尚未轉化成web專案。
完成後如下圖:
注:
網上流傳的大部分博文中出現的路徑都是如同下文所示的
/src/main/webapp /
/src/main/java /WEB-INF/classes
/src/main/resources /WEB-INF/classes
Maven Dependencies /WEB-INF/lib
看這種博文我覺得浪費了我很多時間。。搞得我總是想在上圖所示的前面加一個/
其實並不是像網上大部分流傳的部落格那樣前面會有/
/src/main/webapp / 這一句話已經為我們的WEB專案提供了根路徑,其他的路徑都是基於根路徑的相對路徑。所以無需前面再加 /
最後附上maven jar包依賴。參考慕課網的 秒殺系統
<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>com.seckill</groupId>
<artifactId>seckill</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>seckill</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- 補全專案依賴 -->
<!-- 日誌 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.1</version>
</dependency>
<!-- 資料庫相關依賴 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.35</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<!-- DAO框架依賴 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.3</version>
</dependency>
<!-- servlet web相關依賴 -->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.4</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!-- spring依賴 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
</dependencies>
</project>