Maven初识(四)——运行第一个Servlet,依赖范围讲解
来源:互联网 发布:c语言 最长单词 编辑:程序博客网 时间:2024/06/14 15:14
初始化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包坐标的信息
阅读全文
1 0
- Maven初识(四)——运行第一个Servlet,依赖范围讲解
- 项目管理利器(Maven)——依赖范围
- 从零到一学Maven——依赖范围及传递依赖
- 一点一点学maven(07)——maven依赖(范围、传递、排除、冲突)
- Maven开发笔记(一)—— Maven中的依赖作用范围(scope)
- Maven学习总结(41)——Maven依赖范围、传递、排除详解
- maven依赖(范围、传递、排除、冲突)
- Maven依赖范围
- 3.1.maven依赖范围
- maven之依赖范围
- maven的依赖范围
- maven依赖范围
- maven的依赖范围
- Maven的依赖范围
- maven依赖范围
- maven的依赖范围
- maven的依赖范围
- maven的依赖范围
- 移动前端UI框架使用
- C#中StringBuilder类的使用总结
- hdu 1009 FatMouse' Trade
- MyBatis取得新插入数据的ID
- word2Vec
- Maven初识(四)——运行第一个Servlet,依赖范围讲解
- 解决:在js中拼接html中,调用方法只能传递数字,不能传递字母或者中文
- 每日一题 No.50 任意二点间的最短路问题(Floyd-Warshall算法)
- 蓝桥格子刷油漆
- fopen、freopen、fdopen打开流
- 多源多目标统计信息融合-第三章 通用的数据建模
- 放大器:A类、B类、AB类、D类、G类、H类
- 会话控制系统session和Cookie
- 页面中验证码和文本框不对齐的情况