初始化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包坐标的信息