Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Sonar Ant任务在每次执行时都会增加PermGen的使用量_Java_Ant_Sonarqube_Permgen - Fatal编程技术网

Java Sonar Ant任务在每次执行时都会增加PermGen的使用量

Java Sonar Ant任务在每次执行时都会增加PermGen的使用量,java,ant,sonarqube,permgen,Java,Ant,Sonarqube,Permgen,我有一个遗留项目,它是使用一些复杂的ant脚本构建的。基本上,它归结为一个中央ant脚本,该脚本声明一个项目构建文件的文件列表,然后对于运行的每个目标,它迭代构建文件列表,并使用子ant调用该项目的目标,例如 <subant target="targetName"> <filelist refid="projectList"/> </subant> 我调用的目标之一是声纳,声纳目标看起来像: <target name="sonar" dep

我有一个遗留项目,它是使用一些复杂的ant脚本构建的。基本上,它归结为一个中央ant脚本,该脚本声明一个项目构建文件的
文件列表
,然后对于运行的每个目标,它迭代构建文件列表,并使用子ant调用该项目的目标,例如

<subant target="targetName">
    <filelist refid="projectList"/>
</subant>

我调用的目标之一是声纳,声纳目标看起来像:

<target name="sonar" depends="sonar-init, jacoco-report" if="${sonar.enabled}">
    <taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml" classpathref="sonar.classpath"/>
    <sonar:sonar/>
</target>

我使用jconsole做了一些分析,我可以看到,每次启动sonar任务时,大约在它安装JDBC驱动程序(基于sonar的日志记录)时,PermGen的使用量都会增加大约30MB。由于我们有一些包含大量项目的构建,这可能会导致PermGen使用率跳得非常高,我必须增加MaxPermSize以完成完整构建


有没有办法让Sonar或Ant在每次调用Sonar任务时都不将所有内容加载到内存中?

这里有类似的问题:(虽然它没有说明原因,只是说明如何)。除非您想在Ant VM处于此任务中时花时间和精力分析它,不幸的是,我唯一的答案是数据库连接以及JDBC驱动程序及其内存泄漏将从5.2版的分析中删除。这个问题已经解决了。@SimonBrandhof你知道5.2版有多远吗?没有计划的日期,但我会说三个月后。