Maven学习 七 Maven项目创建(2)war项目

一、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>
原文地址:https://www.cnblogs.com/cplinux/p/9865726.html