【发布时间】:2017-01-17 00:01:09
【问题描述】:
我有几个模块不包含 Maven 多模块项目中的源代码。当 SonarQube 分析这些模块时,它会暂停并发出以下警告:
Load module settings
00:40:47.304 [WARN] [09:29:52.769] [JOURNAL_FLUSHER] WARNING Journal flush operation took 2,123ms last 8 cycles average is 265ms
00:41:54.102 [WARN] [09:31:02.653] [JOURNAL_FLUSHER] WARNING Journal flush operation took 5,194ms last 8 cycles average is 649ms
00:42:37.907 [WARN] [09:31:48.387] [JOURNAL_FLUSHER] WARNING Journal flush operation took 3,927ms last 8 cycles average is 616ms
00:44:41.930 [WARN] [09:33:55.362] [JOURNAL_FLUSHER] WARNING Journal flush operation took 6,855ms last 8 cycles average is 856ms
00:45:48.276 [WARN] [09:34:51.298] [JOURNAL_FLUSHER] WARNING Journal flush operation took 3,144ms last 8 cycles average is 524ms
00:47:10.063 [WARN] [09:36:20.541] [JOURNAL_FLUSHER] WARNING Journal flush operation took 7,876ms last 8 cycles average is 984ms
00:48:26.295 [WARN] [09:37:39.723] [JOURNAL_FLUSHER] WARNING Journal flush operation took 12,296ms last 8 cycles average is 1,537ms
00:48:30.084 [ERROR] Java heap space
这个错误是因为里面没有源代码还是里面有损坏的文件?以下是出现此错误的模块之一的内容:
module_1/
feature.xml
build.properties
我知道有一个跳过模块的选项,但由于我使用的是 SonarQube 4.3.2,它已被弃用。有没有办法避免这些模块,或者可能有另一种方法来解决这个错误?
编辑:我发现此错误可能不是由空模块引起的,因为它甚至在完整模块上也会显示此错误。因此,我的 MAVEN_OPTS 配置可能有问题。这是我的 MAVEN_OPTS 配置:-Xmx4096m -XX:MaxPermSize=1000m -Xms4096m
这台电脑有 8 GB 内存,所以内存不是问题。
谢谢。
【问题讨论】:
-
看起来 SonarQube 正在运行 - Java 只是内存不足。增加运行 Sonar 的 JVM 中使用的最大堆大小。
-
我已经这样做并增加了 2gb,但仍然失败。
-
@user944849 我将 Xmx 增加到 4096 mb。它仍然有这个错误。你有什么想法吗?
-
我怀疑你需要那么多 perm gen 或内存,即使是大型构建,我也从来没有使用超过 1 gig。如上所述,MAVEN_OPTS 配置中有一个错字。确保各个选项之间有空格:
-Xmx1024m -XX:MaxPermSize=512m -Xms1024m。如果这没有帮助,请尝试使用 -X 运行 Maven 以获取调试输出并查看 MAVEN_OPTS 的值。另外,您是通过 Maven 还是 Jenkins 运行 SonarQube? -
wiki.jenkins-ci.org/display/JENKINS/… .. 在 %JENKINS_HOME% 中有一个 jenkins.xml .. 在争论中确保
-Xmx256m被设置。如果错误仍然存在,请更改为-Xmx512m...不过您不需要那么多