初始职位
我为我的持续集成使用了几种工具:
- Maven 3.0.4
- 声纳 3.3
- 声纳网络插件 1.2
- 声纳 Javascript 插件 1.1
- 詹金斯 1.486
Java 项目和 XML 项目一切正常。
我在使用 Javascript 和 Web 项目时遇到问题。项目是在 Sonar 中创建的,但它们是空的。
这是一个 javascript 项目的堆栈跟踪示例
[信息] --- sonar-maven-plugin:2.0-beta-2:sonar (default-cli) @ MyProject ---
[INFO] 声纳版本:3.3
[INFO] [15:59:24.937] 为 jdbc 创建 JDBC 数据源:mysql://sonar-02:3306/sonar
[信息] [15:59:41.190] 初始化休眠
[INFO] [15:59:43.318] ------------- 分析 MyProject JS
[信息] [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 分析)
[信息] [15:59:43.877] 初始化程序 ProjectFileSystemLogger...
[INFO] [15:59:43.878] 排除的测试:[**/package-info.java]
[信息] [15:59:43.881] 源目录:
[信息] [15:59:43.881]
C:\Work\Workspaces\Intellij\MyProject\src\main\java[信息] [15:59:43.881] 测试目录:
[信息] [15:59:43.882]
C:\Work\Workspaces\Intellij\MyProject\src\test\java[INFO] [15:59:43.882] 初始化程序 ProjectFileSystemLogger 完成:5 毫秒
[信息] [15:59:43.882] 初始化程序 MavenInitializer ...
[信息] [15:59:43.884] Java 源版本:1.6
[信息] [15:59:43.884] Java 目标版本:1.6
[INFO] [15:59:43.884] 初始化程序 MavenInitializer 完成:2 毫秒
[信息] [15:59:44.183] 传感器 JavaScriptSourceImporter...
[信息] [15:59:44.335] 传感器 JavaScriptSourceImporter 完成:152 毫秒
[信息] [15:59:44.335] 传感器 JavaScriptSquidSensor...
[信息] [15:59:44.520] 传感器 JavaScriptSquidSensor 完成:185 毫秒
[信息] [15:59:44.520] 传感器 JsTestDriverSurefireSensor ...
[信息] [15:59:44.526] 传感器 JsTestDriverSurefireSensor 完成:6 毫秒
[信息] [15:59:44.526] 传感器 JsTestDriverCoverageSensor ...
[信息] [15:59:44.584] 传感器 JsTestDriverCoverageSensor 完成:58 毫秒
[信息] [15:59:44.584] 传感器 CpdSensor...
[信息] [15:59:44.585] 使用 SonarBridgeEngine
[信息] [15:59:44.642] 传感器 CpdSensor 完成:58 毫秒
[信息] [15:59:44.642] 传感器配置文件传感器...
[INFO] [15:59:44.725] Sensor ProfileSensor done: 83 ms
[信息] [15:59:44.725] 传感器配置文件事件传感器...
[INFO] [15:59:44.752] Sensor ProfileEventsSensor done: 27 ms
[信息] [15:59:44.753] 传感器项目链接传感器...
[信息] [15:59:44.791] 传感器 ProjectLinksSensor 完成:38 毫秒
[信息] [15:59:44.791] 传感器版本事件传感器...
[信息] [15:59:44.820] 传感器版本事件传感器完成:29 毫秒
[信息] [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] 执行 post-job 类 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
[信息] [15:59:49.163] -> 清理 MyProject JS [id=57524]
[信息] [15:59:49.167] <- 清理快照 1690793
我可以看到声纳正在使用 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 项目也存在同样的问题。
任何的想法 ?
先感谢您。
编辑 2013 年 11 月 2 日-Fabrice 之后-声纳团队评论
我用以下信息创建了一个新的 pom (pom-web.xml)
<properties>
<sonar.branch>JS</sonar.branch>
<sonar.language>web</sonar.language>
</properties>
<build>
<sourceDirectory>src/main/webapp</sourceDirectory>
</build>
似乎源目录已更改,但指标仍为空。
[信息] [12:11:54.486] 执行 org.apache.maven.plugins:maven-surefire-plugin:2.9:test done: 545 ms
[信息] [12:11:54.486] 执行 maven 插件 maven-surefire-plugin 完成:545 毫秒
[信息] [12:11:54.486] 初始化程序 JacocoMavenInitializer...
[信息] [12:11:54.486] 初始化程序 JacocoMavenInitializer 完成:0 毫秒
[信息] [12:11:54.486] 初始化程序 ProjectFileSystemLogger...
[INFO] [12:11:54.487] 排除的测试:[**/package-info.java]
[信息] [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>