- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
环境:
1.Linux
2. Gradle 1.6/7
3.语言-Java
gradle clean build jacocoTestReport - 工作正常。
最近遵循 SonarQube 安装提供的文档: 奥 git _a( Sonar 启动、 Sonar 状态、 Sonar 停止等)...命令将在此时起作用。
根据 gradle 构建脚本进行了更改。转到 Gradle SonarRunner 帮助页面: http://docs.sonarqube.org/display/SONAR/Running+SonarQube+as+a+Service+on+Linux
运行 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$
Sonar 安装在/product/c123456/sonar,即- sonar/conf/sonar.properties - 一切看起来都是正确的- sonar/conf/wrapper.properties - 包含 JAVA opts 的有效值,即
# 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 上安装 Sonar 机器,仍然收到相同的错误消息。
我在自己的本地 Windows 计算机上安装了 SonarQube/Runner,并指出 build.gradle sonarRunner 部分使用主机 url 作为我的本地计算机/主机 url 我的计算机名称 (fqdn) 和端口 (:9000) 等,并且相同对于jdbc h2 tcp方式。
运行“gradle clean build jacocoTestReport sonarRunner”时,它通过了上述错误,但给了我另一个奇怪的错误。 C:\work 是我的工作区,我在其中 checkout 了项目: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秒
为什么 Gradle 试图寻找“src/main/java”,而我的源代码甚至没有该文件夹结构。 Gradle 默认结构是使用“src/main/java”作为 java 源代码位置,但我的 build.gradle 确实有 sourceSets 部分,我在其中提到了查找 java 源代码的位置。我尝试了多种方法来设置 src java/测试的源目录,但它仍在尝试查找“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'
}
}
}
和
build.gradle 中的sonarRunner 部分是:
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"
}
}
有什么帮助吗?非常感谢。
最佳答案
我取得了一些进展。
步骤
没有更改 sonar/conf/sonar.properties、wrapper.properties、sonar-runner/conf/sonar-runner.properties 中的任何内容。确保 sonar.properties 和 sonar-runner.properties 中的主机 url 值相同。
转到工作区(已安装源代码的位置)。
兰sonar-runner(可执行文件)-它将显示路径/文件它给出了我需要 sonar-project.properties 的错误,因为我缺少一些所需的变量通过 Sonar 。
使用link
发现 SCM 提供程序未设置。使用链接:http://jira.codehaus.org/browse/ACT-1714来解决它。
再次运行sonar-runner,一切顺利。 (注意:此命令与运行 sonarRunner 不同,因为那是 Gradle 的 Sonar 运行器任务)。
转到 SonarQube 仪表板,现在显示一些内容。
明天待定:
更新:
gradle clean 构建 jacocoTestReport - 有效
gradle clean build jacocoTestReport sonarRunner - 失败说 src/main/java 不存在
gradle clean build jacocoTestReport sonarRunner -Dsonar.sources=src/java -- 已工作
gradle clean build jacocoTestReport sonarRunner -Dsonar.sources="src/java,test/java,src/java-test"-- 没有工作(PermGen java错误)
gradle clean build jacocoTestReport sonarRunner -Dsonar.sources="src/java"-- 没有工作(PermGen java错误)
gradle clean build jacocoTestReport sonarRunner -Dsonar.sources=src/java -- 没有工作(PermGen java错误)
gradle sonarRunner -Dsonar.sources=src/java,test/java,src/java-test -- 不起作用(错误是字符集无法读取或导入 - 字符集 UTF-8 或我最终设置的任何内容 Sonar .sourceEncoding)
gradle clea build jacocoTestReport -- 已工作
然后
gradle sonarRunner -Dsonar.sources="src/java" -- 已工作
我尝试将 sonar/conf/wrapper.properties 中的 MaxPernGen 设置为各种值,例如 128、512、1024、2048,...高达 8000m ...在运行所有 gradle 时无法解决以下错误一个命令即可完成任务。
:sonarRunner FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':sonarRunner'.
> java.lang.OutOfMemoryError: PermGen space
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
想知道为什么我一运行就收到此错误:
:gradle clean 构建 jacocoTestReport sonarRunner"
确定 - 永久代内存问题已解决。
步骤:1. 在我的 ~/.bashrc 或 ~/.bash_profile 中。我创建了以下变量
GRADLE_OPTS=” -XX:MaxPermSize=512m"
运行“which gradle”或基本上查找使用了哪个 gradle 文件(shell 或 .bat)。转到该路径并打开“gradle”/“gradle.bat”(对于 Windows)文件。
进行以下更改。
DEFAULT_JVM_OPTS="$JAVA_OPTS $GRADLE_OPTS"
执行“.~/.bash_profile”或“.~/.bashrc”.... --或者打开一个新的 putty session 。
确保 PATH 变量中包含 gradle HOME/bin (Linux/Windows)
从工作区运行以下命令(这次没有显示我之前收到的 PermGen 错误):
gradle clean 构建 jacocoTestReport sonarRunner
:)今天早点回家。
其他类似的变量有:服务器(putty session 级别)或 IDE 或 Jenkins 中的 GRADLE_OPTS/JAVA_OPTS/SONAR_RUNNER_OPTS(其中可以设置 -XX:Max.. 值)。
感谢艾琳的提示。
关于java - sonarRunner java.lang.OutOfMemoryError : PermGen space,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18499829/
运行 Tomcat 失败并出现 java.lang.OutOfMemoryError - 与缺少 PermGen 空间相关的错误。 我最近将 Tomcat 更改为以自己的用户(而非 root)运行。
我需要一些信息: 我有 2 个带有 TOMCAT 7.0.28 和 JAVA jdk1.7.0_05 的 redhat 6.1 Linux 服务器 在 192.168.1.20(TOM04) 上,我有
我知道在JVM中,permgen区是用来存放类定义的。在我的 Tomcat 中,我看到 permgen 的当前内存使用量接近 100MB,似乎它只是随着时间的推移而增长,即使没有人使用 Tomcat
我正在尝试增加我的应用程序必须使用的 PermGen 空间量以避免一些 PermGen 错误。 我尝试将 JAVA_OPTS 和 MAVEN_OPTS 导出为 -Xms1024m -Xmx2048m
我遇到了一个非常严重的生产问题,我希望有人能提供帮助。 我正在使用 Spring 3.1.0 并且对其功能印象深刻。 在开发过程中,一切正常。不幸的是,在部署到生产环境时,我们遇到了一些问题。 我们正
next java release附带 removal of the permanent generation来自热点 JVM。 Java 开发人员应该知道的后果是什么? 最佳答案 来自您链接的 JE
我有一个关于 PermGen 内存分配过多的问题。 我写了一个小代码来监控这个内存空间的大小,我注意到几乎每个方法执行后分配的内存大小都会增加。也许我的应用程序中有很多全局对象?有没有办法知道在 Pe
有没有一种工具/方法可以监控 tomcat 内存使用情况,即 permgen 以避免出现如下问题。是的,我们可以增加内存并调整 GC,但仍然进行一些监控会更好。当达到某些关键内存消耗时,还希望发送警告
org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet default t
环境:Windows Server 2003 x86 Intel Xeon 2.3 4gb Ram | Tomcat 7.0.27 | jdk 1.7.0.25 我遇到了 OutOfMemoryErr
我有 tomcat 7.0.47,grails 2.3.7 中的一个项目和 windows 2003 中 RichFaces 4.3.4 中的 2 个项目 服务器(2Gb RAM)。如果我在 tomc
嘿,我在 Windows 上,我正在尝试部署 Tomcat,但我一直收到 permgen 内存异常。我读到您可以通过添加 JAVA_OPTS="-server -Xms128M -Xmx256M -X
我有一个正在运行的java进程。通过 jstat,我可以看到 permgen 利用率和容量几乎相同。即当前容量几乎已满,但仍远低于指定的最大 permgensize。 这是标准还是我应该期望看到一定程
我正在为在 JBoss 上运行的应用程序使用 JAVA 5(32 位)。但它仅适用于 32 位。当我们在 64 位 java5 上部署它时,它会抛出异常 "java.lang.OutOfMemoryE
我从官方oracle网站找到了图片 但在流行SO answer我发现永久代不是堆的一部分 Permanent Generation (non-heap): The pool containing al
我想知道 JVM 是否正常卸载类以减少 PermGen 空间。所以这是我的问题: Java 类是否会默认从 JVM 中卸载? 关闭 Jar 类加载器是否会卸载该 jar 中所有已加载的类? 应该使用什
我试图了解 HotSpot JVM 的内存结构,但对“方法区” 和“PermGen” 空间这两个术语感到困惑。我提到的文档说方法区包含类和方法的定义,包括字节码。其他一些文档说它们存储在 PermGe
java中PermGen空间的意义是什么? 最佳答案 PermGen 空间是为长期对象保留的——主要是由 ClassLoader 加载的 Class 对象。 PermGen 不会被垃圾回收,除非在非常
我知道有很多关于这个问题的问题和答案;我已经尝试了 8 或 10 种对其他人有用的不同方法,并且觉得需要分析错误的地方而不是反复试验。 我在 Windows 64 位机器上运行,Spring Tool
在我的进程中,我不断创建一个新的 Thread 对象(实际上是 Thread 的子类)(每秒最多几个),运行它并干净地结束。 我注意到,例如,当进程运行 25 天时,进程可能会死亡,留下 hprof,
我是一名优秀的程序员,十分优秀!