【发布时间】:2014-10-05 07:24:05
【问题描述】:
将声纳从 3.4 升级到 4.3.2 版本后,我们在 jenkins nightly build 期间遇到 java 脚本解析错误。在上一个版本中一切正常。声纳运行器仍然是版本 2。请您就解决此错误提出建议。使用的插件是sonar-javascript-plugin-1.6,sonar-squid-java-plugin-1.6。
错误详情:
[INFO] [12:56:47.163] Sensor JavaScriptSquidSensor...
[INFO] [12:56:47.275] 98 source files to be analyzed
[INFO] [12:56:57.330] 10/98 files analyzed, current is /var/lib/jenkins/jobs/Nightly_Build_abc_CAD_src/workspace/abc_CAD_src/src/main/webapp/auth/js/lib/angular/jquery-ui-1.9.0.custom.js
[ERROR] [12:57:01.429] Unable to parse file: /var/lib/jenkins/jobs/Nightly_Build_abc_CAD_src/workspace/abc_CAD_src/src/main/webapp/js/lib/csrfguard.js
com.sonar.sslr.api.RecognitionException: Parse error at line 199 column 13 failed to match all of: spacing IDENTIFIER NULL TRUE FALSE NUMERIC_LITERAL stringLiteral REGULAR_EXPRESSION_LITERAL LBRACKET LCURLYBRACE LPARENTHESIS FUNCTION NEW THIS IDENTIFIER NULL TRUE FALSE NUMERIC_LITERAL stringLiteral REGULAR_EXPRESSION_LITERAL LBRACKET LCURLYBRACE LPARENTHESIS FUNCTION NEW NEW THIS IDENTIFIER NULL TRUE FALSE NUMERIC_LITERAL stringLiteral REGULAR_EXPRESSION_LITERAL LBRACKET LCURLYBRACE LPARENTHESIS FUNCTION NEW THIS IDENTIFIER NULL TRUE FALSE NUMERIC_LITERAL stringLiteral REGULAR_EXPRESSION_LITERAL LBRACKET LCURLYBRACE LPARENTHESIS FUNCTION NEW NEW DELETE VOID TYPEOF INC DEC PLUS MINUS TILDA BANG
【问题讨论】:
-
您能否提供包含文件“src/main/webapp/js/lib/csrfguard.js”第 199 行的代码段?解析器中可能存在错误。 SonarQube 平台的升级不应该对插件解析源的方式产生影响。在构建之前文件是否已更改?
-
@Linda :在构建之前没有对文件进行任何更改。 189: 窗口.XMLHttpRequest = init_XMLHttpRequest; 190: } 191: 192: /** 根据 domainStrict 检查是否有效域/ 193: function isValidDomain(current, target) { 194: var result = false; 195: 196: / 检查精确或子域匹配 **/ 197: if(current == target) { 198: result = true; 199: } else if(%DOMAIN_STRICT% == false) { ^ 200: if(target.charAt == '.') { 201: result = current.endsWith(target); 202: } else { 203: 结果 = current.endsWith('.' + 目标); 204:}
-
您能否确认该文件之前已被分析过(您可以从 UI 中看到)?也许它是否被排除在提供给 sonarqube 的源目录中并且是在升级之后?在任何情况下,由于“%DOMAIN_STRICT%”(第 199 行第 13 列)这不是允许的构造而发生解析错误?是吗?
-
是的,你是对的。该文件是 lob 文件夹中的文件之一,包含在 pom.xml 的排除项下,但我不明白为什么它没有被忽略。我们有
js/lib/*.js,auth/js/lib/**/*.js,js/lib/**/**/*.js 我还添加了它作为声纳属性,但仍然得到相同的错误。 -Dsonar.exclusions=js/lib/*.js,auth/js/lib/**/*.js,js/lib/**/**/*.js 请指教。 -
@linda: kindkly 回复:P
标签: java javascript maven jenkins sonarqube