java - 迁移到 Java 8 时无法解析 import org.apache.commons

标签 java tomcat

我们正在将我们的 maven 项目升级到 java 8 以及兼容的 tomcat。 现在正在编译代码,但出现以下错误:-

    Caused by: java.lang.Error: Unresolved compilation problems:
            The import org.apache.commons cannot be resolved
            The import org.apache.commons cannot be resolved
            The import org.apache.commons cannot be resolved

但是它在 Java 6 和 Tomcat 7 中运行良好。我们已经检查过所有 jar 都包含在 WEB-INF/lib 中。似乎没有一个 apache-commons jar 得到认可(不确定什么是正确的术语)。

只是为了检查我将 apache-commons jar 移到了 tomcat/lib(显然这不是解决方案),但仍然是同样的错误。

这是我们使用的 Java 和 tomcat :-

OpenJDK 运行时环境(build 1.8.0_161-b14)

apache-tomcat-8.5.32

最佳答案

您需要更新项目的 POM.xml 文件以包含您正在使用的 Apache Commons 库的依赖项。如果操作正确,JAR 将从 Maven Central 下载到您的 ~/.m2 本地存储库,并由 Maven 添加到编译时构建路径。然后,当 Maven 为您的项目创建 WAR 文件时,它会将 JAR 包含在 WAR 文件中的适当位置……准备好部署到您的 Tomcat。

我建议您阅读有关 Maven、POM 文件以及 Maven 如何处理依赖项的内容。官方"Maven Getting Started Guide"将是一个很好的起点。

目前还不清楚您之前是如何在没有适当依赖项的情况下在 Maven 下构建项目的。我猜你以前没有使用过 Maven。或者可能有人一直在使用 IDE 手动构建并完全忽略 Maven 和 POM 文件。

关于java - 迁移到 Java 8 时无法解析 import org.apache.commons,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52114669/

相关文章:

java - 如何为JFrame窗口和托盘设置图标

tomcat - 基于 Tomcat 配置的 Worklight WAS Liberty 配置文件配置

java - Tomcat 8 忽略 CORS 过滤器(web.xml、代码内等)

java - 异常处理反模式 : Why log and return null is an anti-pattern

java - 如何将 Maven 库依赖项的版本打印到控制台

java - 部署WAR文件时的Tomcat 7.0.52 JNDI错误

tomcat - JDK6:何时使用捆绑的 JAX-WS 实现与 Project Metro

java - 如何在 SSL 配置的 tomcat 中缓存和更新 CRL(证书撤销列表)/OCSP 响应?

java - 涵盖 Effective Java 建议的 checkstyle 规则

java - 如何使用 LayeredHighlighter - 一个高亮显示在另一个之上