1. 程式人生 > >Maven學習 七 Maven項目創建(2)war項目

Maven學習 七 Maven項目創建(2)war項目

image strong 服務 2.3 artifact cat tomcat7 web-inf mls

一、web項目的目錄結構

如果手動創建一個java web項目,其基本的目錄結構包括:METE-INF,WEB-INF,以及WEB-INF下必須包含一個web.xml文件

技術分享圖片

二、使用Maven創建war項目

(一) 創建maven project時選擇packaging為war

技術分享圖片

(二)在webapp文件夾下新建META-INF和WEB-INF/web.xml

剛創建的項目發現會報錯,因為此時的項目沒有web項目的目錄結構,需要創建一些文件夾和文件,形成web的目錄結構,在main/webapp下面創建META-INF,WEB-INF文件夾,並在WEB-INF目錄下創建web.xml

技術分享圖片

創建web目錄結構後

技術分享圖片

(三)加入web項目基本的三個依賴包,javax.servlet,javax.servlet.jsp,javax.servlet.jsp.jstl

<dependencies>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</
scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.1</version> <scope>provided</scope> </dependency> <dependency
> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency>
</dependencies>
 

至此我們搭建的maven項目,如果在本地的tomcat上運行已經沒有問題了

三、maven的web項目在tomcat插件上運行

(一)、在pom.xml的根標簽下配置tomcat插件

<build>
      <pluginManagement>
          <plugins>
              <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                  <configuration>
                  <!-- 控制tomcat端口號 -->
                      <port>80</port>
                      <!-- 項目發布到tomcat後的名稱 -->
                      <!-- / 相當於把項目發布名稱為ROOT -->
                    <!-- /abc -->
                      <path>/</path>
                  </configuration>
              </plugin>
          </plugins>
      </pluginManagement>
  </build>

(二)為依賴的servlet,jsp包限定作用範圍,

在<dependecy>標簽下有一個<scope>標簽,用來限定這個包起作用的範圍,設置成provided

因為使用了tomcat插件,所以在tomcat插件中也有servlet,jsp等包,因此會和pom.xml中配置的依賴的包在運行時沖突,會報錯。那麽此時把pom.xml中的配置的包做一個範圍限定,值讓其在編譯器起作用。

<dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <version>2.3.1</version>
        <scope>provided</scope>
    </dependency>

(三)、右鍵項目--> run as --> maven build-->Goals 中輸入 clean tomcat7:run

clean和使用本地tomcat中,右擊tomcat服務器-->clean一樣

在運行tomcat7:run時,7一定要帶上,不然會運行tomcat6

(四)、pom.xml全文

<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.mavenTest</groupId>
  <artifactId>wabPro</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  
  <dependencies>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <version>2.3.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

  </dependencies>
  <build>
      <pluginManagement>
          <plugins>
              <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                  <configuration>
                  <!-- 控制tomcat端口號 -->
                      <port>80</port>
                      <!-- 項目發布到tomcat後的名稱 -->
                      <!-- / 相當於把項目發布名稱為ROOT -->
                    <!-- /abc -->
                      <path>/</path>
                  </configuration>
              </plugin>
          </plugins>
      </pluginManagement>
  </build>
</project>

Maven學習 七 Maven項目創建(2)war項目