我有一个使用一些复杂的ant脚本构建的遗留项目。基本上它归结为一个中心ant脚本,声明filelist
项目构建文件,然后对于每个运行的目标,它遍历构建文件列表并使用subant调用该项目的目标,例如< / p>
<subant target="targetName">
<filelist refid="projectList"/>
</subant>
我称之为Sonar的目标之一,Sonar目标如下:
<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进行了一些分析,我可以看到每次启动声纳任务时,大约在安装JDBC驱动程序的时间(基于声纳的记录),PermGen的使用量会大约增加30MB。由于我们有一些包含大量项目的构建,这可能导致PermGen使用率跳得很高,我必须增加MaxPermSize以完成完整构建。
有没有什么方法可以让Sonar或Ant在每次调用Sonar任务时都不将所有内容加载到内存中?