【发布时间】:2013-01-24 09:49:58
【问题描述】:
首发
我使用多种工具进行持续集成:
- Maven 3.0.4
- 声纳 3.3
- 声纳网络插件 1.2
- 声纳 Javascript 插件 1.1
- 詹金斯 1.486
Java 项目和 XML 项目一切正常。
我在使用 Javascript 和 Web 项目时遇到了问题。项目是在 Sonar 中创建的,但它们是空的。
这是一个 javascript 项目的堆栈跟踪示例
[INFO] --- sonar-maven-plugin:2.0-beta-2:sonar (default-cli) @ 我的项目---
[INFO] 声纳版本:3.3
[INFO] [15:59:24.937] 创建 JDBC 数据源 jdbc:mysql://sonar-02:3306/sonar
[INFO] [15:59:41.190] 初始化休眠
[INFO] [15:59:43.318] ------------- 分析 MyProject JS
[INFO] [15:59:43.573] 质量简介: [name=myProfileJavascript,language=js]
[INFO] [15:59:43.612] 配置 maven 插件...
[INFO] [15:59:43.653] 与之前的分析比较 (2013-02-08)
[INFO] [15:59:43.672] 比较超过 5 天(2013-02-03,分析 2013-02-07 12:29:08.0)
[INFO] [15:59:43.682] 比较超过 30 天(2013-01-09,分析 2013-02-07 12:29:08.0)
[INFO] [15:59:43.877] 初始化程序 ProjectFileSystemLogger...
[INFO] [15:59:43.878] 排除测试:[**/package-info.java]
[INFO] [15:59:43.881] 源目录:
[信息] [15:59:43.881]
C:\Work\Workspaces\Intellij\MyProject\src\main\java[INFO] [15:59:43.881] 测试目录:
[信息] [15:59:43.882]
C:\Work\Workspaces\Intellij\MyProject\src\test\java[INFO] [15:59:43.882] 初始化 ProjectFileSystemLogger 完成:5 毫秒
[INFO] [15:59:43.882] 初始化程序 MavenInitializer...
[INFO] [15:59:43.884] Java 源版本:1.6
[INFO] [15:59:43.884] Java 目标版本:1.6
[INFO] [15:59:43.884] 初始化程序 MavenInitializer 完成:2 毫秒
[INFO] [15:59:44.183] 传感器 JavaScriptSourceImporter...
[INFO] [15:59:44.335] 传感器 JavaScriptSourceImporter 完成:152 毫秒
[INFO] [15:59:44.335] 传感器 JavaScriptSquidSensor...
[INFO] [15:59:44.520] 传感器 JavaScriptSquidSensor 完成:185 毫秒
[INFO] [15:59:44.520] 传感器 JsTestDriverSurefireSensor...
[INFO] [15:59:44.526] 传感器 JsTestDriverSurefireSensor 完成:6 毫秒
[INFO] [15:59:44.526] 传感器 JsTestDriverCoverageSensor...
[INFO] [15:59:44.584] 传感器 JsTestDriverCoverageSensor 完成:58 毫秒
[INFO] [15:59:44.584] 传感器 CpdSensor...
[INFO] [15:59:44.585] 使用 SonarBridgeEngine
[INFO] [15:59:44.642] 传感器 CpdSensor 完成:58 毫秒
[INFO] [15:59:44.642] 传感器配置文件传感器...
[INFO] [15:59:44.725] 传感器配置文件传感器完成时间:83 毫秒
[INFO] [15:59:44.725] Sensor ProfileEventsSensor...
[INFO] [15:59:44.752] Sensor ProfileEventsSensor done: 27 ms
[INFO] [15:59:44.753] 传感器 ProjectLinksSensor...
[INFO] [15:59:44.791] 传感器 ProjectLinksSensor 完成:38 毫秒
[INFO] [15:59:44.791] 传感器版本事件传感器...
[INFO] [15:59:44.820] 传感器版本事件传感器完成时间:29 毫秒
[INFO] [15:59:44.820] 传感器 Maven 依赖项...
[INFO] [15:59:48.148] 传感器 Maven 依赖完成:3328 毫秒
[INFO] [15:59:48.517] 执行装饰器...
[INFO] [15:59:48.856] 分析成功,您可以浏览
http://sonarServer:9000[INFO] [15:59:48.857] 执行作业后课程 org.sonar.plugins.core.batch.IndexProjectPostJob
[INFO] [15:59:49.140] 执行 post-job 类 org.sonar.plugins.dbcleaner.ProjectPurgePostJob
[INFO] [15:59:49.154] -> 在 2013-01-11 之间每天保留一张快照 和 2013-02-07
[INFO] [15:59:49.156] -> 在 2012-12-14 之间每周保留一张快照 和 2013-01-11
[INFO] [15:59:49.157] -> 每月保留一个快照 2011-04-08 和 2012-12-14
[INFO] [15:59:49.157] -> 删除之前的数据:2011-04-08
[INFO] [15:59:49.163] -> 清理 MyProject JS [id=57524]
[INFO] [15:59:49.167]
我可以看到声纳正在使用 C:\Work\Workspaces\Intellij\MyProject\src\main\java
在我的 pom 中,我测试了几个属性而没有改变声纳行为。
<sonar.javascript.sources>src/main/webapp</sonar.javascript.sources>
<sonar.sources>src/main/webapp</sonar.sources>
<sources>src/main/webapp</sources>
Web 项目也存在同样的问题。
有什么想法吗?
提前谢谢你。
编辑 11/02/2013 - 在 Fabrice 之后 - 声纳团队评论
我用以下信息创建了一个新的 pom (pom-web.xml)
<properties>
<sonar.branch>JS</sonar.branch>
<sonar.language>web</sonar.language>
</properties>
<build>
<sourceDirectory>src/main/webapp</sourceDirectory>
</build>
似乎源目录已更改,但指标仍为空。
[INFO] [12:11:54.486] 执行 org.apache.maven.plugins:maven-surefire-plugin:2.9:test done: 545 ms
[INFO] [12:11:54.486] 执行 maven 插件 maven-surefire-plugin 完成: 545 毫秒
[INFO] [12:11:54.486] 初始化程序 JacocoMavenInitializer...
[INFO] [12:11:54.486] 初始化程序 JacocoMavenInitializer 完成:0 毫秒
[INFO] [12:11:54.486] 初始化程序 ProjectFileSystemLogger...
[INFO] [12:11:54.487] 排除测试:[**/package-info.java]
[INFO] [12:11:54.487] 源目录:
[信息] [12:11:54.487]
C:\Work\Workspaces\Intellij\MyProject\src\main\webapp
Web 和 JS 的行为相同。
编辑 11/02/2013:找到解决方案
我需要一个 pom 文件。所以我通过配置文件管理声纳属性。由于不能在配置文件中重新定义“sourceDirectory”,因此我使用自定义属性。
属性“sonar.branch”使我能够为我的项目创建多个声纳条目。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>fr.test</groupId>
<artifactId>MyMultiLanguageProject</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<ci.build.sourceDirectory>src/main/java</ci.build.sourceDirectory>
<ci.build.testSourceDirectory>src/test/java</ci.build.testSourceDirectory>
</properties>
<build>
<sourceDirectory>${ci.build.sourceDirectory}</sourceDirectory>
<testSourceDirectory>${ci.build.testSourceDirectory}</testSourceDirectory>
</build>
<profiles>
<profile>
<id>CI-WEB</id>
<properties>
<sonar.branch>WEB</sonar.branch>
<sonar.language>web</sonar.language>
<sonar.sources>src</sonar.sources>
<ci.build.sourceDirectory>src/main/webapp</ci.build.sourceDirectory>
<ci.build.testSourceDirectory>src/test/webapp</ci.build.testSourceDirectory>
</properties>
</profile>
<profile>
<id>CI-JS</id>
<properties>
<sonar.branch>JS</sonar.branch>
<sonar.language>js</sonar.language>
<sonar.sources>src</sonar.sources>
<ci.build.sourceDirectory>src/main/webapp</ci.build.sourceDirectory>
<ci.build.testSourceDirectory>src/test/webapp</ci.build.testSourceDirectory>
</properties>
</profile>
</profiles>
【问题讨论】:
标签: javascript jsp maven web sonarqube