1

我已经使用 starter parent pom 版本 2.0.3 实现了 spring boot 项目。当我尝试使用

import org.apache.commons.lang.StringUtils

它抛出错误导入无法解决。即使我的 m2 文件夹(C:\Users\.m2\repository\org\apache\commons)安装了 lang 包(commons-lang 文件夹)。我也有 commons-lang3 文件夹。如果我将导入更改为

import org.apache.commons.lang3.StringUtils

它工作正常。

我在其他 spring boot 项目中有相同版本的 starter pom,我可以在那里使用 commons.lang。无法确定根本原因。

4

2 回答 2

4

据我所知,spring boot starter parent仅依赖于 commons-lang3 而不是 commons-lang(这是合理的,因为 commons-lang3 是 commons-lang 的更新替代品)。

你的 .m2 目录是否包含 commons-lang 并不重要(可能是由于其他项目依赖它):只要你的项目没有声明对 commons-lang 的(直接或间接)依赖,它就没有类将在您的类路径中。

于 2019-08-22T11:03:50.310 回答
1

调用mvn dependency:tree你的“其他”项目。在这里你可以看到你通过哪条路径绘制了 commons-lang。Joachim Sauer 可能是对的,它是一种传递依赖,您开始像直接依赖一样使用它。

最好的解决方法是开始为您的项目使用 commons-lang3(同样,Joachim Sauer 就在这里),第二好的解决方法是将 commons-lang 声明为您的pom.xml.

于 2019-08-22T12:29:05.733 回答