我们的Jenkins(maven)构建随机失败,出现以下错误堆栈:
-- (StackOverflowError) null
null
java.lang.StackOverflowError
at org.aspectj.weaver.World.resolve(World.java:273)
at org.aspectj.weaver.World.resolve(World.java:209)
at org.aspectj.weaver.UnresolvedType.resolve(UnresolvedType.java:645)
at org.aspectj.weaver.ResolvedType.getRawType(ResolvedType.java:2331)
at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:427)
at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:393)
at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:427)
at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:393)
-- (StackOverflowError) null
null
java.lang.StackOverflowError
at org.aspectj.weaver.World.resolve(World.java:273)
at org.aspectj.weaver.World.resolve(World.java:209)
at org.aspectj.weaver.UnresolvedType.resolve(UnresolvedType.java:645)
at org.aspectj.weaver.ResolvedType.getRawType(ResolvedType.java:2331)
at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:427)
at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:393)
at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:427)
at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:393)
这种失败绝对不是由实际的代码更改引起的,因为通常在这样的失败之后,后续的构建,手动触发(即不是代码提交)成功。
版本如下:
詹金斯:1.501maven:2.2.2
aspectjrt:1.6.10
任何人都知道如何解决这个问题?
答案 0 :(得分:0)
猜测,但是由于1.6.8中修复的错误导致了类似的错误。是什么阻止您升级到当前的AspectJ版本?你的真的很老了。
答案 1 :(得分:0)
我认为升级到最新版本的aspectj没有解决问题的原因是因为在pom中定义了aspectj maven插件版本1.3。此版本的插件依赖于aspectj版本1.6.7(1.6.8之前的版本,其中引入了修复)。将插件升级到1.4版(取决于aspectj版本1.6.11)似乎解决了问题,因为从那时起我们没有得到StackOverflowError异常。
一般而言,如果存在过时的隐藏依赖关系,则应检查依赖关系树(包括插件)。
找出依赖关系树(包括插件)的命令是:
mvn dependency:tree
和
mvn dependency:resolve-plugins