Maven初识(四)——运行第一个Servlet,依赖范围讲解

初始化Maven运行环境

在Maven初识(二)基本知识中,我们已经创建了一个Maven空JavaWeb项目。

这里写图片描述

大家都知道,Maven的很多功能都是插件实现的,那么我们来看看有哪儿些插件。

在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>cn.domarvel</groupId>
  <artifactId>helloyangqiqi</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <build>
    <plugins>
    <!-- 该插件是用来编译源代码的,我们都知道编译源代码涉及到JDK的版本,所以configuration标签中就是配置的JDK版本。运行时的JDK版本和你本机安装的有关。 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <!-- 这是配置运行时的tomcat版本,如果不配置这个,默认的tomcat版本为6.0版本。 -->
        <plugin>  
            <groupId>org.apache.tomcat.maven</groupId>  
            <artifactId>tomcat7-maven-plugin</artifactId>  
            <version>2.1</version>  
        </plugin>
    </plugins>
  </build>
</project>

写了这个之后,项目会报错。

这里写图片描述

刷新Maven:

这里写图片描述

注意:因为你的本地仓库为空文件夹,所以你配置了中央仓库后,需要联网才能够完成刷新Maven的操作。

如果你不想写配置文件,你也可以这样添加插件或者依赖:

这里写图片描述

添加依赖jar包:

在pom.xml文件中配置:

  <dependencies>
      <!-- 配置依赖的servlet包 -->
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <!-- scope就是依赖范围的配置,如果不配置,默认的依赖范围是compile,现在看不懂没关系,等下会讲解。 -->
        <scope>provided</scope>
      </dependency>
  </dependencies>

整体配置:

<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>cn.domarvel</groupId>
  <artifactId>helloyangqiqi</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <plugin>  
            <groupId>org.apache.tomcat.maven</groupId>  
            <artifactId>tomcat7-maven-plugin</artifactId>  
            <version>2.1</version>  
        </plugin>
    </plugins>
  </build>
  <dependencies>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
      </dependency>
  </dependencies>
</project>

如果报错,请再次刷新Maven项目。

可以看到jar包添加成功!!!

这里写图片描述

创建servlet类:

这里写图片描述

public class HelloYangQiQi extends HttpServlet{
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=utf-8");
        resp.getWriter().println("在最后的日子里,有开心,有失落。"
                + "开心的是认识了你,第一次跟女生吃饭,第一次跟女生散步,"
                + "第一次跟女生一起去图书馆,第一次跟女生谈电影,第一次遇到性格相仿的女生,"
                + "第一次有女生帮我接水,第一次吃女生给的东西,第一次发现女生也有这么完美的,"
                + "第一次感受到了心灵的温暖,第一次有想付出一切的冲动,"
                + "也是第一次最害怕的一次。"
                + "不开心的是没多久我们就要别离了;自己也没自信能够让你过好,怕以后会伤害到你。讨厌自己不够幽默,讨厌自己不能让你笑起来,讨厌冷场。"
                + "讨厌自己为什么编码能力那么弱!!!!!!!!!!!!!没有物质的生活是折磨啊!!!"
                + "time:2017-5-17 10:12:25:81");
    }
}

配置web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <servlet>
    <servlet-name>LY</servlet-name>
    <servlet-class>cn.domarvel.web.servlet.HelloYangQiQi</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>LY</servlet-name>
    <url-pattern>/LY</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

部署项目:

这里写图片描述

这里写图片描述

好了,这样就可以了。如果报出任何异常请自行百度。这里就不多做阐述了。反正大致流程是这样的。

依赖范围:

这里写图片描述

注意:如果像servlet-api.jar包导入到已经部署到Tomcat中的项目后,那么会因为jar包冲突而运行失败。所以你看我们上面的servlet配置时,设置了依赖范围为provided

system: 系统依赖范围。该依赖与三种classpath的关系,和provided依赖范围完全一致。但是,使用system范围依赖时必须通过systemPath元素显式地指定依赖文件的路径。由于此类依赖不是通过Maven仓库解析的,而且往往与本机系统绑定,可能造成构建的不可移植,因此应该谨慎使用。systemPath元素可以引用环境变量,如:

<dependency>  
    <groupId>javax.sql</groupId>  
    <artifactId>jdbc-stdext</artifactId>  
    <version>2.0</version>  
    <scope>system</scope>  
    <systemPath>${java.home}/lib/rt.jar</systemPath>  
</dependency>  

项目调试:

和运行差不多,也要写tomcat7:run

这里写图片描述

但是唯一不同的是

这里写图片描述

最后说一下:

第一:我们安装Maven一般要配置一个本地仓库,中央仓库。
第二:pom.xml文件里面通常配置

- 本项目的坐标信息
- 本项目JDK编译版本的信息
- 本项目依赖的jar包坐标的信息

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值