java - 如何为 Servlet 3.0 配置 Spring Boot 1.2.0 并让 m2e 将 Eclipse Facet 设置为 3.0?

标签 java eclipse maven spring-boot m2e

在 Spring Boot 1.2.0 中,m2e 将 Eclipse Project Facet“动态 Web 项目”设置为 3.1。这是预期的,因为 Spring Boot 1.2.0 新支持 Servlet Spec 3.1。

但是,我们需要继续使用 3.0 (Tomcat 7),因此我们根据引导说明在 POM 中设置正确的属性:

<servlet-api.version>3.0.1</servlet-api.version>

但是 m2e 仍然将 Eclipse facet 设置为 3.1,而不是 3.0。问题是 Eclipse 不会将 war 部署到 Tomcat 7。

还需要设置什么才能使 m2e 将 facet 设置为 3.0,以便我们可以升级到 Spring Boot 1.2.0?

最佳答案

我找到了一个简单的解决方案:m2e-wtp 通过查看 web.xml(如果存在)或扫描特定 servlet api 类的类路径(当未找到 web.xml 时)来设置 Eclipse 项目 Web 方面。

因此,要么在 web.xml 中设置 servlet api 版本,要么将 POM 属性设置为非 servlet 3.1 版本(例如 Spring Boot 1.1.10 的版本为 7.0.57)。这两种方法都会导致 m2e-wtp 相应地设置 facet。

我想知道是否有可能改进 m2e-wtp 的检测或配置,因为目前我不知道如何在没有 web.xml 的情况下使用 Tomcat 8 和 servlet 3.0。

关于java - 如何为 Servlet 3.0 配置 Spring Boot 1.2.0 并让 m2e 将 Eclipse Facet 设置为 3.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27447077/

相关文章:

java - Android 中的多个回收 View

java - java中两个项目共享的资源

java - android中的 fatal error 异常

java - 无法获取 Windows ProductId key ,但可以获取 ProductName key

java - servlet 和 JAX-RS 依赖项来自哪里?

java - Javac + Lombok 阶段后如何使用 AspectJ Maven 进行二进制编织

java - jackson 未能将字符串反序列化为 Joda-Time

java - 为什么与 UTC 具有相同偏移量的时区显示不同的时间?

java - 弗林克 : is it losing records?

java - 如何解决 Nexus 无法从现有数据库的添加存储库中找到 Artifact 的问题?