maven项目出错:One or more constraints have not been satisfied

当我们在Eclipse中通过maven向导构建maven web项目后,一般需要修改一些环境变量。如果jdk使用的是1.8,那么我们需要设置buildpath,还需要修改Project Facets下面的两个属性:Dynamic Web Module:3.1和Java:1.8,而Dynamic Web Module是无法通过界面设置成功的,我们需要在项目路径下的.settings目录下文件org.eclipse.wst.common.project.facet.core中设置:

maven项目出错:One or more constraints have not been satisfied

另外,我们还需要增加依赖库:server library,指向我们的tomcat。否则项目会报错,无法解析javax.servlet.http.HttpServlet。

当我们做完这些之后,项目还是会报红叉,打开Problems视图,我们发现如下错误:

maven项目出错:One or more constraints have not been satisfied

这时候,我们需要修改两处配置:

1、修改web.xml,将默认生成的webapp标签意外的部分去掉,加上<?xml version="1.0" encoding="UTF-8"?>,另外,webapp标签,还需要设置命名空间。

maven项目出错:One or more constraints have not been satisfied

修改过后的web.xml,这样第一个问题就解决了一半,后面需要在项目上右键->Maven->Update Project才会生效。

maven项目出错:One or more constraints have not been satisfied

2、修改pom.xml,增加对编译时jdk的限制,增加的这一段和<build></build>是同一级。

maven项目出错:One or more constraints have not been satisfied

这两处修改之后,就在项目上右键->Maven->Update Project,即可看到Problems视图下的错误不存在了,项目红叉没有了。

maven项目出错:One or more constraints have not been satisfied