避免grails中的循环引用继承

避免grails中的循环引用继承,grails,bouncycastle,grails-2.0,grails-plugin,Grails,Bouncycastle,Grails 2.0,Grails Plugin,我有一个用Grails2.3.8编写的大项目。有时,当我使用CI部署它时,会收到以下消息: 由于StackOverflower错误,无法完成web应用程序[/ProjectName##1152]的批注扫描。 可能的根本原因包括-Xss设置过低和非法循环继承依赖项。 正在处理的类层次结构为 [org.bouncycastle.asn1.asn1encodablector->org.bouncycastle.asn1.derencodablector->org.bouncycastle.asn1.a

我有一个用Grails2.3.8编写的大项目。有时,当我使用CI部署它时,会收到以下消息:

由于StackOverflower错误,无法完成web应用程序[/ProjectName##1152]的批注扫描。

可能的根本原因包括-Xss设置过低和非法循环继承依赖项。 正在处理的类层次结构为 [org.bouncycastle.asn1.asn1encodablector->org.bouncycastle.asn1.derencodablector->org.bouncycastle.asn1.asn1encodablector]

我已经增加了Xss设置,但很明显,可能我错了,有一个循环引用: org.bouncycastle.asn1.asn1encodablector->org.bouncycastle.asn1.derencodablector->org.bouncycastle.asn1.asn1encodablector

我希望您可以避免检查,我无法删除库,因为我需要它。但我不知道如何在Grails中实现这一点。我可以排除他们,但这不是我想要的

谢谢你的建议

笔尖

更新
我刚刚解决了这个问题。我删除buildConfig文件中bouncycastle库的所有痕迹。Dependency或excludes中没有跟踪。只需在crypto.2.0中添加插件,一切正常

我认为这是因为从类路径引用了两个版本的JAR

这通常是在加载不同版本的bcprov jdk*.jar时造成的

For example, IN one of my scenario - I had 

..../webapps/FOO/WEB-INF/lib/bcprov-jdk15on-147.jar
..../webapps/FOO/WEB-INF/lib/bcprov-jdk15on-1.51.jar 

从类路径中删除任何一个后,我就解决了这个问题。

上还有另一篇文章提到了相同的问题:。我想你也有同样的问题——在类路径上有两个或更多的bouncycastle版本。您应该检查grails依赖项报告并排除不需要的依赖项报告。我遇到了同样的问题,因为我的全局lib文件夹中有bcprov-jdk15on-147.jar,而我的应用程序的lib文件夹中嵌入了bcprov-jdk15on-1.51.jar,这导致了类加载器中的冲突。在我从全局库文件夹中删除1.47之后,我的问题得到了解决。很好,很有魅力。因为我负责一个多模块Maven项目,所以它帮助我搜索它的来源:mvn dependency:tree-Dverbose-Dincludes=org.bouncycastle