eclipse 使用 maven 创建 web3.0 项目:挺别扭的,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.pluginsmaven-compiler-plugin3.6.0 org.apache.maven.pluginsmaven-eclipse-plugin2.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 片段:
- junitjunit4.12 test javax.servletjavax.servlet-api3.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.pluginsmaven-compiler-plugin3.6.0 UTF-8 1.81.8 org.apache.maven.pluginsmaven-eclipse-plugin2.10 2.0 6.0