我有一个应用程序,目前正在使用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接口?我怎么能找到造成麻烦的子类呢?即使在目前根本没有任何切入点的项目中也会发生这种情况。
答案 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