1

我正在从 Spring 3.0.5 更新到 Spring 3.1.2,并且在更新 Spring 安全核心的同时也更新到 3.1.2,这反过来又依赖于 aspectjrt(在其 pom 中提到)但是在更新到 3.1.2 之后,如果我生成依赖项树使用

dependency:tree

它没有在树中列出 aspectjrt,但如果我使用 3.0.5 版生成相同的树,aspectjrt 会在依赖树中列出。

此外,如前所述,我已经验证了两个 pom(版本 3.0.5 和 3.1.2)中都存在 aspectjrt 依赖项。

由于 aspectjrt 未列为依赖项,因此我的代码未编译,因为它需要来自 aspectjrt 的类。

如果我在我的 pom 中明确包含 aspectjrt 依赖项,我的代码将成功编译。

有谁知道为什么更新到 3.1.2 后会出现这个问题?为什么在更新到 3.1.2 后没有将 aspectjrt 作为依赖项包含在内

是否有任何解决方法,否则我将不得不通过在我的 pom.xml 中包含 aspectjrt 作为显式依赖项来工作。

4

2 回答 2

3

AspectJ在 spring POM 中被声明为可选依赖项。这意味着构建 Spring JAR 需要 AspectJ,但当您将 Spring 作为依赖项包含时,构建项目不需要 AspectJ。如果您需要 AspectJ 功能,请将其包含在您的 POM 中。

于 2012-11-30T14:21:11.997 回答
-2

我已经解决了这个问题。这是预期的行为,因为 spring security core 3.0.5 aspectjrt 不是可选的,但在 spring securoty core 3.1.2 中,它们已将 aspectjrt 标记为可选。

因此,如果您在代码中使用了一些 aspectjrt,则必须在 pom.xml 中包含 aspectjrt 依赖项。

希望有帮助。

于 2012-12-03T10:01:18.827 回答