java.lang.OutOfMemoryError:在maven中运行findbugs时超出了GC开销限制
因此,当前配置基本上适用于所有构建。但这一次。向项目中添加了一些代码,但这次构建失败并抛出 java.lang.OutOfMemoryError:超出GC开销限制 而FindBugs分析。在搜索更多信息时,我发现POM文件中的FindBugs配置中有一个java.lang.OutOfMemoryError:在maven中运行findbugs时超出了GC开销限制,java,maven,garbage-collection,out-of-memory,findbugs,Java,Maven,Garbage Collection,Out Of Memory,Findbugs,因此,当前配置基本上适用于所有构建。但这一次。向项目中添加了一些代码,但这次构建失败并抛出 java.lang.OutOfMemoryError:超出GC开销限制 而FindBugs分析。在搜索更多信息时,我发现POM文件中的FindBugs配置中有一个选项。因此,我尝试将其设置为min之前是max。但这似乎也不起作用。另外,在更改VM参数方面也有限制,因此不允许我这样做 堆栈跟踪: Exception in thread "main" java.lang.OutOfMemoryError: G
选项。因此,我尝试将其设置为min
之前是max
。但这似乎也不起作用。另外,在更改VM参数方面也有限制,因此不允许我这样做
堆栈跟踪:
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
[java] at java.util.BitSet.initWords(BitSet.java:166)
[java] at java.util.BitSet.<init>(BitSet.java:143)
[java] at edu.umd.cs.findbugs.ba.LiveLocalStoreAnalysis.createFact(LiveLocalStoreAnalysis.java:58)
[java] at edu.umd.cs.findbugs.ba.LiveLocalStoreAnalysis.createFact(LiveLocalStoreAnalysis.java:45)
[java] at edu.umd.cs.findbugs.ba.Dataflow.execute(Dataflow.java:318)
[java] at edu.umd.cs.findbugs.classfile.engine.bcel.LiveLocalStoreDataflowFactory.analyze(LiveLocalStoreDataflowFactory.java:68)
[java] at edu.umd.cs.findbugs.classfile.engine.bcel.LiveLocalStoreDataflowFactory.analyze(LiveLocalStoreDataflowFactory.java:38)
[java] at edu.umd.cs.findbugs.classfile.impl.AnalysisCache.analyzeMethod(AnalysisCache.java:369)
[java] at edu.umd.cs.findbugs.classfile.impl.AnalysisCache.getMethodAnalysis(AnalysisCache.java:
线程“main”java.lang.OutOfMemoryError中出现异常:超出GC开销限制
[java]位于java.util.BitSet.initWords(BitSet.java:166)
[java]位于java.util.BitSet.(BitSet.java:143)
[java]位于edu.umd.cs.findbugs.ba.LiveLocalStoreAnalysis.createFact(LiveLocalStoreAnalysis.java:58)
[java]位于edu.umd.cs.findbugs.ba.LiveLocalStoreAnalysis.createFact(LiveLocalStoreAnalysis.java:45)
[java]位于edu.umd.cs.findbugs.ba.Dataflow.execute(Dataflow.java:318)
[java]位于edu.umd.cs.findbugs.classfile.engine.bcel.LiveLocalStoreDataflowFactory.analyze(LiveLocalStoreDataflowFactory.java:68)
[java]位于edu.umd.cs.findbugs.classfile.engine.bcel.LiveLocalStoreDataflowFactory.analyze(LiveLocalStoreDataflowFactory.java:38)
[java]位于edu.umd.cs.findbugs.classfile.impl.AnalysisCache.analyzeMethod(AnalysisCache.java:369)
[java]位于edu.umd.cs.findbugs.classfile.impl.AnalysisCache.getMethodAnalysis(AnalysisCache.java:
我无法确定我添加的新代码是否有问题,或者是FindBugs的问题。我的代码只是一个普通的东西(我相信)。即使我的代码有问题,FindBugs也应该报告它,而不是破坏JVM本身
我们将FindBugs 3.0.5与默认的JVM选项一起使用事实上,经过大量的努力和研究,在maven中的maven FindBugs帮助文档中找到了一个选项,可以指定分叉JVM的堆大小,如问题第一条注释中的@second所示。因此,在POM XML中,在findbug的标记内,我可以指定1024,如下所示:
<plugin>
<groupId>com.github.findbugs</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>3.1.12</version>
<configuration>
...
<maxHeap>1024</maxHeap>
...
</configuration>
...
</plugin>
com.github.findbugs
findbugs maven插件
3.1.12
...
1024
...
...
我差点忘了发回。把它放在这里是为了帮助像我这样的人。感谢@second为我指明了正确的方向。事实上,经过大量的努力和研究,在maven中的maven findbugs帮助文档中找到了一个选项,可以指定分叉jvm的堆大小,如@second I所示n问题的第一个注释。因此,在POM XML中,在findbug的标记中,我可以指定1024,如下所示:
<plugin>
<groupId>com.github.findbugs</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>3.1.12</version>
<configuration>
...
<maxHeap>1024</maxHeap>
...
</configuration>
...
</plugin>
com.github.findbugs
findbugs maven插件
3.1.12
...
1024
...
...
我差点忘了发回。把它放在这里是为了希望能帮助像我这样的人。感谢@second为我指明了正确的方向。jvm使用的默认内存是多少?根据its推荐使用
768m或更多
。我在findbugs plugin for maven中的实例是512。所以你用它运行它配置低于要求。我认为除了告诉您正确配置之外,我们没有什么可以为您做的。如果是您的(本地?)IDE配置,为什么您会被限制更改vm参数(-Xmx)?这不是我的本地版本。这是docker中的PR构建。这是我的误解。不管怎样,我认为你唯一的选择是与负责构建系统的人交谈。你可以在本地运行构建过程来计算它需要多少内存。jvm使用的默认内存是多少?根据建议使用的768m或更多
。对于我的maven findbugs插件实例来说是512。因此,您正在使用低于要求的配置运行它。我认为除了告诉您正确配置之外,我们没有什么可以为您做的。如果是您的(本地?)IDE配置,为什么您会被限制更改vm参数(-Xmx)?这不是我的本地版本。这是docker中的PR构建。这是我的误解。不管怎样,我认为你唯一的选择是与负责构建系统的人员交谈。你可以在本地运行构建过程,以确定它需要多少内存。