Apache lang3有效,但Apache lang无效。为什么?

时间:2019-08-22 10:57:10

标签: java maven apache-stringutils apache-commons-lang apache-commons-lang3

我已经用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。 无法确定根本原因。

2 个答案:

答案 0 :(得分:3)

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

您的.m2目录是否包含commons-lang无关紧要(可能是由于其他项目而定):只要您的项目没有声明(直接或间接) )对commons-lang的依赖,它的所有类都不会放在您的类路径中。

答案 1 :(得分:1)

在您的“其他”项目上调用 <tr> <td><%= crud.id %></td> <td><%= crud.name %></td> <td><%= crud.email %></td> <td><%= crud.phone %></td> <td><%= crud.address %></td> </tr> <% }); %> 。在这里,您可以看到绘制commons-lang的路径。 Joachim Sauer可能是对的,它是一种传递依赖,您开始像直接引用一样使用它。

最佳解决方案是开始在您的项目中使用commons-lang3(同样,Joachim Sauer就在此处),第二个最佳解决方案是将commons-lang声明为 <% if (_.isEmpty(cruds)){ %> 中的直接依赖项。 / p>