我正在从Spring 3.0.5更新到Spring 3.1.2并且更新spring安全核心也更新到3.1.2,而后者依赖于aspectjrt(在其pom中提到)但在更新到3.1.2之后如果我使用
生成依赖树dependency:tree
它不会在树中列出aspectjrt,但如果我使用版本3.0.5生成相同的树,则依赖关系树中会列出aspectjrt。
此外,如前所述,我已经验证了两个poms中存在aspectjrt依赖关系(版本3.0.5和3.1.2)。
由于aspectjrt未列为依赖项,因此我的代码未编译,因为它需要来自aspectjrt的类。
如果我在我的pom中明确地包含了aspectjrt依赖项,我的代码就会成功编译。
有没有人知道为什么在更新到3.1.2后出现此问题?为什么在更新到3.1.2
后,aspectjrt不会作为依赖项包含在内是否有任何解决方法,或者我必须通过在我的pom中包含aspectjrt作为explict依赖来工作。
答案 0 :(得分:3)
在Spring POM中,AspectJ被声明为optional dependency。这意味着AspectJ需要构建Spring JAR,但在将Spring作为依赖项包含时不需要构建项目。如果您需要AspectJ功能,请将其包含在POM中。
答案 1 :(得分:-2)
我已经解决了这个问题。这是预期的行为,因为Spring安全核心3.0.5 aspectjrt不是可选的,但在春天的securoty核心3.1.2中,他们将aspectjrt标记为可选。
因此,如果您在代码中使用了一些aspectjrt,则必须在pom中包含aspectjrt依赖项。
希望有所帮助。