博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
eclipse使用maven创建web3.0项目
阅读量:6689 次
发布时间:2019-06-25

本文共 2602 字,大约阅读时间需要 8 分钟。

  hot3.png

挺别扭的,eclipse和maven发展了这么久,二者都没有很好的解决这个问题。

默认情况下,使用maven骨架撞见的webapp只支持servlet2.3,eclipse又不允许随便修改为3.0。

网上流传最多的版本可能是修改项目目录中.settings/org.eclipse.wst.common.project.facet.core.xml文件,然后还要注意一堆东西。

我梳理了一种办法,感觉处理起来相对合理,如下:

1.创建普通的webapp项目

点击菜单“File - New - Other - Maven - Maven Project”;Next;Next;Catalog 选择"Internal",选中最后一个骨架"maven-archetype-webapp","Next";输入你自己的groupId,artifactId,"Finished"。

2.添加maven插件

右键点击项目名,选择“Maven - Add Plugin”;在搜索框输入"maven-compiler-plugin",选中"org.apache.maven.plugins"开头的插件,"OK";在搜索框输入"maven-eclipse-plugin",选中"org.apache.maven.plugins"开头的插件,"OK";

此时插件只是插入了基本模板:

org.apache.maven.plugins
maven-compiler-plugin
3.6.0
org.apache.maven.plugins
maven-eclipse-plugin
2.10

3.调整依赖

非必须,只是建议。

双击打开pom.xml,并切换到"Dependencies"选项卡;建议:选中junit 3.8.1,点击"Properties",版本改为"4.12";点击"Add",在搜索框输入javax.servlet-api,选择"javax.servlet"开头的依赖,并调整版本为"3.1.0",scope改为"provided","OK";

以上基本上依靠eclipse就可以实现,不需要直接修改pom。这里只是列出xml片段:

junit
junit
4.12
test
javax.servlet
javax.servlet-api
3.1.0
provided

4.调整第二步中的插件配置

调整compiler插件

在``上面插入一个空行;按"Alt + /",选择"configuration"插入节点;在"configuration"节点内重复上一步,插入encoding=utf8,source=1.8,target=1.8;提示:如果你能记住这几个单词,而且又安装了emmet的话,不放输入"configuration>encoding{UTF-8}+source{1.8}+target{1.8}"按下Tab看看。

调整eclipse插件

同上,增加"configuration"及下面的节点wtpversion=2.0,jeeversion=6.0;你还想知道emmet表达式?好吧,"configuration>wtpversion{2.0}+jeeversion{6.0}"

最终插件配置

org.apache.maven.plugins
maven-compiler-plugin
3.6.0
UTF-8
1.8
1.8
org.apache.maven.plugins
maven-eclipse-plugin
2.10
2.0
6.0

5.重新生成eclipse项目构建

右键点击项目目录,选择"Run As - Maven build..."(注意选带...的);在Goals中输入"eclipse:clean eclipse:eclipse",点"Run";

6.重建web.xml

删除src/main/webapp/WEB-INF/web.xml;右键点击项目目录,选择"Jave EE Tools - Generate Deployment Descriptor Stub";

7.恢复现场

第6步执行完后,你可能会发现,右键点击项目名,"Maven"选项没有了。别急,恢复一下现场就可以了。

右键点击项目名,依次选择"Configure - Convert to Maven Project"。右键点击项目名,选择"Maven - Update Project..."。

8.不太好的消息

maven3将maven-eclipse-plugin标记为了'Deprecated',说是交给eclipse来处理,但是eclipse根本没有处理好这个问题,蛇精病。

好在只是标记为'Deprecated',说不准多少年内还能用的。

转载于:https://my.oschina.net/polly/blog/881943

你可能感兴趣的文章
数据结构(二)LinkedList源码分析
查看>>
ES6, Angular,React和ABAP中的String Template(字符串模板)
查看>>
Android 滤镜效果和颜色通道过滤
查看>>
Ruby开发者已可通过Fog管理Microsoft Azure服务
查看>>
Visual Studio 2017 15.6发布
查看>>
如何迅速分析出系统CPU的瓶颈在哪里?
查看>>
逢宕机必谈起,多云是真火还是假热?
查看>>
Chrome和HTTPS:安全Web的征途
查看>>
天猫双十一这十年:从“人肉云计算”到“脉冲计算”经历了什么
查看>>
软件专家的对话模式(第一部分)
查看>>
敏捷世界里中层经理的角色
查看>>
chrome扩展调试:background.html如何调试?
查看>>
关于嵌入式安全性的6个要点
查看>>
1月18日云栖精选夜读 | Euler 今日问世!国内首个工业级的图深度学习开源框架,阿里妈妈造 ...
查看>>
4月云栖社区最新技术活动预告
查看>>
我的JAVA面试经验(3年左右工作经验)
查看>>
大数据开发学习路线,如何快速成为大数据工程师?
查看>>
脚本填报表的条件查询
查看>>
好程序员web前端分享js技巧和js中一些常见的陷阱
查看>>
从一个开发的角度看负载均衡和LVS
查看>>