环境:
1. Linux的
2.摇篮1.6/7
3.语言 - Java的sonarRunner java.lang.OutOfMemoryError:PermGen的空间
gradle这个干净的构建jacocoTestReport - 做工精细。
近日随后SonarQube安装在所提供的文件: http://docs.sonarqube.org/display/SONAR/Running+SonarQube+as+a+Service+on+Linux (声纳开始,声纳状态,声纳站等)...命令将在这一点上工作。
更改了gradle build脚本acc。到摇篮SonarRunner帮助页面在: http://www.gradle.org/docs/current/userguide/sonar_runner_plugin.html
当运行sonarRunner任务 - 我收到以下错误:
:sonarRunner
18:56:03.997 INFO - Load batch settings
18:56:04.140 INFO - User cache: /production/c123456/jenkins/.sonar/cache
18:56:04.146 INFO - Install plugins
18:56:04.851 INFO - Install JDBC driver
18:56:04.858 WARN - H2 database should be used for evaluation purpose only
18:56:04.858 INFO - Create JDBC datasource for jdbc:h2:tcp://devserver11.tr.company.com:9092/sonar
18:56:05.870 INFO - Initializing Hibernate
:sonarRunner FAILED
java.lang.OutOfMemoryError: PermGen space
> Building-bash-3.2$
在/生产/ c123456 /声纳即
安装声纳 - 声纳/ conf目录/声纳的.properties - 一切看起来正确 - 声纳/ conf目录/ wrapper.properties - 包含有效值JAVA选择采用即
# Java Additional Parameters
wrapper.java.additional.1=-Djava.awt.headless=true
wrapper.java.additional.2=-XX:MaxPermSize=1024m
wrapper.java.additional.3=-XX:+HeapDumpOnOutOfMemoryError
wrapper.java.additional.4=-XX:+CMSClassUnloadingEnabled
wrapper.java.additional.5=-XX:+UseConcMarkSweepGC
# RECOMMENDED : uncomment if Java Virtual Machine is a JDK but not a JRE. To know which JVM you use, execute
# 'java -version'. JDK displays 'Server VM'.
wrapper.java.additional.4=-server
# Initial Java Heap Size (in MB)
wrapper.java.initmemory=512
# Maximum Java Heap Size (in MB)
wrapper.java.maxmemory=1024
谁能帮我可能会错过得到这个错误信息 - PermGen的空间问题 注意:这是从一个Linux机器上发生的事情,所以我想在其它Linux版本 机中安装声纳,还是得到了同样的错误信息。
我在我自己的本地Windows机器上安装了SonarQube/Runner,并指出build.gradle sonarRunner部分使用主机url作为本地机器/主机url我的机器名称(fqdn)带有端口(:9000)等, jdbc h2 tcp方式。
在运行“gradle clean build jacocoTestReport sonarRunner”时,它通过了上面的错误,但给了我另一个奇怪的。 C:\ work是我检查项目的工作空间:Project_A_Svc(服务项目 - Java源代码)。
:sonarRunner失败
失败:建立失败,一个例外。
出了什么问题: 执行失败的任务 ':sonarRunner'。
org.sonar.runner.RunnerException: The folder 'C:\work\Project_A_Svc\src\main\java' does not exist for 'project_a_svc:project_a_svc' project (base directory = C:\work\Project_A_Svc)
尝试: 与--stacktrace选项获取堆栈跟踪运行。使用--info或--debug选项运行以获取更多日志输出。
构建失败
总时间:38。124秒
为什么摇篮正试图寻找“的src/main/java的”当我的源代码甚至没有该文件夹结构。 Gradle的缺省结构是使用“src/main/java”作为java源代码的位置,但是我的build.gradle确实有sourceSets部分,我已经提到了查找java源代码的位置。我已经尝试了多种方法为src java/tests设置源代码,但它仍在尝试查找“src/main/java”。
的build.gradle snapshost
apply plugin: 'java'
apply plugin: 'sonar-runner'
main {
java {
srcDir 'src/java'
}
}
test {
java {
srcDir 'test/java'
}
}
integrationTest {
java {
srcDir 'src/java-test'
}
}
}
和
sonarRunner的build.gradle内部分是:
def sonarServerUrl = "devserver11.tr.company.com"
sonarRunner {
sonarProperties {
property "sonar.host.url", "http://$sonarServerUrl:9000"
// these are default settings for the in-memory database. Change if using a persistent DB.
property "sonar.jdbc.url", "jdbc:h2:tcp://$sonarServerUrl:9092/sonar"
property "sonar.jdbc.driverClassName", "org.h2.Driver"
property "sonar.jdbc.username", "sonar"
property "sonar.jdbc.password", "sonar"
//properties ["sonar.sources"] += sourceSets.main.java.srcDirs
//properties ["sonar.tests"] += sourceSets.test.java.srcDirs
//----
properties["sonar.sources"] = "src/java"
properties["sonar.tests"] = "test/java"
}
}
任何帮助吗?非常感谢。
所以,1解决方法是:在一份工作中用不同的任务调用两次gradle。 –
这个解决方法将不起作用 - 因为詹金斯Gradle插件有一个BUG - 在构建部分调用2个“调用gradle脚本”调用,使第一个调用隐藏“Gradle版本”列表框/框。我会提出一张票。 –
查看解决PermGen Java内存空间问题的最终答案。 –