1.eclipse设置maven:
(1)在window-preference-maven中installations中add添加maven的根目录,选择完目录后记得把maven勾上
(2)在usersetting中,设置settings.xml配置文件
2.新建项目:在eclipse中新建一个maven project(新建项目的时候可以选择是否创建简单项目,简单项目的话会自动给你预设好的模板,不勾选的话就是可以自己选择模板)
(1)Group id:com.azuma Artifact id:HelloMaven 版本号默认即可 (具体根据自己喜欢的填写)
(2)勾选构建简单项目的情况:Group id:com.azuma Artifact id:HelloMaven 版本号默认即可 packaging :war Name:HellowMaven Description:第一个maven项目 剩下的副项目:默认空白即可
(3)创建好项目后pom.xml中war报错:src/main/webapp中缺少了WEB-INF/web.xml,复制一份进去即可
(4)在pom.xml中,设置插件,放在 <project></project>中即可
<build> <plugins><!-- 插件列表 --> <plugin><!-- 通过坐标获取插件 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build>
(5)这时候项目可能报错,但是却不显示哪里错误,可能se版本问题,右键工程——maven——update project即可
3.修改Maven默认编译级别:
(1) 全局编译级别 -> 修改settings.xml
(2) 项目级别修改 -> 项目对应的pom.xml
4.在Java Resourcese -> src/main/java下写代码,创建包和Servlet;
(1)Name:TestServlet package:com.ayanami.web
(2)URL mapping:选择/test
(3)点击完成
(4)创建文件显示错误,是因为没有导包,在pom.xml中导入相关jar包
<dependencies><!-- 依赖标签 配置项目中依赖的jar包坐标 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> <scope>test</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jsp-api</artifactId> <version>2.0</version> <scope>provided</scope> </dependency> </dependencies>
(5)TestServlet.java仍然报错 :因为添加的servletjar包版本是2.5,比较低,还不支持注解,删除TestServlet.java中的注解 @WebServlet("test")即可,顺便把导入的包也删除
(6)在web.xml中,添加一个新的servlet
<servlet> <servlet-name>TestServlet</servlet-name> <servlet-class>com.ayanami.web.TestServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>/test</url-pattern> </servlet-mapping>
(7)项目右键run as——maven build:Goals:tomcat:run 剩下的默认,然后直接运行
5.手动添加插件和依赖,配置Tomcat7插件(解决版本过低不能添加注解问题)
(1)新建一个项目,相关设置同上
(2)eclipse——window——Show view——other——maven Repositories,open
(3)可以看到maven Repositories中看到一个本地仓库,在local repository中右键rebuild index
(4)第一次索引生成较慢,生成索引成功后,在pom.xml中:右键——maven——add Plugin——Enter groupartifactid or sha1prefix or pattern(")输入框中,填写 compile,然后打开下面search results中,选择3.8版本的
(5)更新项目:右键项目——maven——update project
(6)重新按照之前项目的添加一个servlet
(7)在pom.xml中添加依赖:右键——maven——Add Dependency——搜索 servlet——选择Tomcat servlet-api——7.0.42版本
(8)右键——maven——Add Dependency——搜索 juntt——添加4.9版本
(9)添加保存后,可以看到maven Dependencies中已经有相关版本的jar包了
(10)在pom.xml中的plugins属性下添加Tomcat7插件
<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <port>8081</port> <path>/</path> </configuration> </plugin>
(11)此时可以使用注解了,右键运行项目(跟之前的一样)即可。注意:maven build的时候 goals : tomcat7:run
(12)如果运行后出现jdk错误的话,一般是jdk安装有问题
(13)运行项目显示500错误:pom.xml中的 dependencies属性中缺少scope标签,添加<scope>provided</scope>即可
(14)配置端口:在tomcat7-maven-plugin中添加configuration标签:
<configuration> <port>8081</port> <path>/</path> </configuration>
6. 在servlet-api中添加scope标签,值为:proviede;
(1) 如果不加此标签有很大几率报错,因为tomcat中也有servlet-api的包导致冲突;
7、 运行:发生错误,原因是maven默认使用tomcat6.xx,不支持@WebServle注解;
(1) 解决方案1:需要去web.xml中配置Servlet;
(2) 解决方案2:配置高版本tomcat插件;
8.最后测试,启动服务,在地址栏输入请求,显示结果;
9.使用tomcat7插件运行项目;
10.Scope依赖作用域也可称作依赖范围:maven中的依赖,会根据程序所处的阶段和场景发生变化,所以maven用scope属性来做限制;(上面没使用scope属性的时候出现错误是因为jar包所在目录有多份同样的jar包导致冲突,加入scope属性后就只有一份了)
(1) compile(默认值):在编译、运行、测试、打包都有效;
(2) provided:编译、测试时有效,运行、打包无效;
(3) test:仅在测试时有效;
(4) runtime:测试、运行、打包时有效;
(5) system:不推荐使用,使用system作用域不会去本地仓库寻找依赖,要指定本地路径;
11.Maven3.5和tomcat8.5热部署(热部署:在tomcat运行时将项目部署上去;)
(1)开启tomcat热部署:
a) 修改tomcat -> conf-> tomcat-users.xml 配置文件;
<role rolename="manager-gui"/> <role rolename="manager-script"/> <user username="azuma" password="123123" roles="manager-gui, manager-script"/>
b) 在项目pom.xml中移除低版本的tomcat,添加高版本的tomcat
c) 在tomcat.Maven包下的tomcat-users标签中加入以下代码:
<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://localhost:8080/manager/text</url> <username>azuma</username> <password>123123</password> </configuration> </plugin>
d)在pom.xml和web.xml中修改artifactId中的项目名
e) 启动tomcat;
f) 修改项目中pom.xml,在tomcat7的插件上添加以下代码:
i. tomcat7:deploy,第一次部署时使用。
ii. tomcat7:redeploy,非第一次部署时使用。
g) 右键项目-> run as -> maven build… 在goals中使用tomcat7:deploy或tomcat7:redeploy来进行热部署;
h) 部署完毕,打开浏览器测试;
原文:https://www.cnblogs.com/AzumaRinne/p/12628663.html