构建maven动态web 工程

项目构建

总体参考:

http://www.java2blog.com/2015/09/how-to-create-dynamic-web-project-using.html

https://stackoverflow.com/questions/10888068/java-dynamic-web-project-with-maven-and-eclipse
遇到maven报错但是只有项目前有错误符号
点击右键update maven project
创建maven 动态网页工程


没有srcmainjava和srcmain esources
然后在Java build path里切换下jre环境
工程里就有了

 或者

https://stackoverflow.com/questions/18790106/eclipsemaven-src-main-java-not-visible-in-src-folder-in-package-explorer

点击

 Java build path-order and export

将maven dependencies和jre system library选上

出现cannot change dynamic web model to 2.5
原因在于web.xml里配置的是
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"

如何稳定的改变呢?

参考

https://stackoverflow.com/questions/25551213/cannot-change-version-of-project-facet-dynamic-web-module-to-2-5

这个答案说原因是在于在project facets里dynamic web model 已经选上不能变了,就算maven update也只能增加module而不能改变module,所以先不选择dynamic web model 

然后再maven update 就好了


有关dynamic web module和 tomcat关系
http://www.cnblogs.com/beijingstruggle/p/5461146.html

下面转载自上面的博客

写的很好!

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1、Dynamic web project时选择2.5和3.0是指servlet的版本,是2.5的还是3.0的

    servlet3.0以后支持异步

2、dynamic web module和对应的TOMCAT 版本

     dynamic web module 2.4  对应Tomcat 5.5
     dynamic web module 2.5  对应Tomcat 6.0
     dynamic web module 3.0 对应Tomcat 7.0

 具体可以参考如下博文:

     http://blog.sina.com.cn/s/blog_529aacbd01014cc8.html

3、不同版本(2.3,2.4,2.5,3.0)的Servlet web.xml 头信息
参考:
http://blog.csdn.net/z69183787/article/details/36008097

4、Servlet和Tomcat的基础知识
参考:
http://blog.csdn.net/pirateleo/article/details/8574973

5、Servlet 3特性:异步Servlet
参考:
http://www.importnew.com/8864.html

6、tomcat里边的servlet.jar对应哪个版本的java API?

追问:
这张表我看到了,但是看不太明白,里边的那个servlet/jsp 的版本是怎么回事呀?servlet-api.jar 里边的.class文件不是javaee 的servlet包里边的类的实现吗?
追答:
servlet/jsp当然有自己的版本。每次重大的升级,都会意味着版本的升级。 可能你现在多半在纠结servlet-api和javaee的关系。下面举个例子: MyEclipse 8新建webProject后,
MyEclipse自动在项目中引用了Java EE 5 Libraries,里面包括了 javaee.jar,jsf-impl.jar,jsf-api.jar,jstl-1.2.jar这四个包,其中javaee.jar包中包括了编写servlet的类,
在项目中新建一个servlet。 用MyEclipse的发布功能把项目发布到Tomcat后,其中的 jsf-impl.jar,jsf-api.jar,jstl-1.2.jar 这三个包也一同发布到了应用的lib目录中,
javaee.jar却并没有一同发布到lib中。Tomcat启动应用正常,可是应该报错找不到HttpServlet才对啊。 原来在Tomcat安装目录下的lib里有一个servlet-api.jar,
在这个包里也包括了编写servlet的类,所以Tomcat启动应用并没有因为找不到HttpServlet而报错。
追问:
嗯,您说的这些我明白,基本上也解决了我的疑问,谢谢,我还想再问下,上面你给的那个图最后一列中的 "Minimum java version" 指的是javaee 的版本,还是javase的版本?我认为是javaee的版本,对吗?
追答:
javaSE. 你要知道tomcat也是用java编写的

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
change dynamic web module问题解决:

https://stackoverflow.com/questions/18122336/cannot-change-version-of-project-facet-dynamic-web-module-to-3-0/20146436
右键项目名-properties-project facets-dynamic web module-右键check version-选择版本号
或者将前面打钩去掉-更改web.xml配置然后maven-update project

原文地址:https://www.cnblogs.com/hong2016/p/7307458.html