Spring 3.2.12寻找Spring 4.0类?

时间:2014-11-14 16:40:46

标签: java spring aspectj aspectj-maven-plugin

我有一个应用程序,目前正在使用Spring 3.2.3正确编译。想要更加现在(但尚未准备好进入4.x)我尝试升级到3.2.12。当我这样做时,我从aspectj得到了一个奇怪的编译错误:

[INFO] --- aspectj-maven-plugin:1.3:compile (default) @ ebs-schema-jaxb-bindings ---
[ERROR] can't determine superclass of missing type org.springframework.cache.interceptor.CacheAspectSupport when batch building BuildConfig[null] #Files=3825 AopXmls=#0
[Xlint:cantFindType]
[ERROR] can't determine superclass of missing type org.springframework.aop.interceptor.AsyncExecutionAspectSupport when batch building BuildConfig[null] #Files=3825 AopXmls=#0
[Xlint:cantFindType]

我认为我理解逻辑here,但为什么Spring 3.2.12引用Spring 4.x接口?我怎么能找到造成麻烦的子类呢?即使在目前根本没有任何切入点的项目中也会发生这种情况。

2 个答案:

答案 0 :(得分:3)

如果您使用maven尝试使用dependency:tree来查找哪个lib导入Spring 4库。

然后尝试使用exlusions标记在maven编译时从导入中排除此工件。您可能在库中存在冲突。

答案 1 :(得分:0)

我找到了一个简单的解决方法:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>${spring.version</version>
</dependency>
<dependency>
    <groupId>javax.cache</groupId>
    <artifactId>cache-api</artifactId>
    <version>1.0.0</version>
</dependency>

有关详细信息,请阅读此JCache dependency in spring-aspects