Wil*_*aud 8 javascript jsp maven web sonarqube
我为持续集成使用了几个工具:
一切都适用于Java项目和XML项目.
我在使用Javascript和Web项目时遇到了麻烦.项目是在Sonar中创建的,但它们都是空的.
这是一个javascript项目的堆栈跟踪示例
[INFO] --- sonar-maven-plugin:2.0-beta-2:声纳(默认-cli)@ MyProject ---
[INFO]声纳版本:3.3
[INFO] [15:59:24.937]为jdbc创建JDBC数据源:mysql:// sonar-02:3306/sonar
[INFO] [15:59:41.190]初始化Hibernate
[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]来源目录:
[INFO] [15:59:43.881]
C:\ Work\Workspaces\Intellij\MyProject\src\main\java[INFO] [15:59:43.881]测试目录:
[INFO] [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 ms
[INFO] [15:59:44.584]传感器CpdSensor ......
[INFO] [15:59:44.585]使用SonarBridgeEngine
[INFO] [15:59:44.642]传感器CpdSensor完成:58毫秒
[INFO] [15:59:44.642]传感器ProfileSensor ......
[INFO] [15:59:44.725]传感器ProfileSensor完成:83 ms
[INFO] [15:59:44.725]传感器ProfileEventsSensor ......
[INFO] [15:59:44.752]传感器ProfileEventsSensor完成:27 ms
[INFO] [15:59:44.753]传感器ProjectLinksSensor ......
[INFO] [15:59:44.791]传感器ProjectLinksSensor完成:38毫秒
[INFO] [15:59:44.791]传感器VersionEventsSensor ......
[INFO] [15:59:44.820]传感器VersionEventsSensor完成:29 ms
[INFO] [15:59:44.820]传感器Maven依赖...
[INFO] [15:59:48.148]完成传感器Maven依赖:3328 ms
[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 class 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] < - 清理快照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>
Run Code Online (Sandbox Code Playgroud)
这与Web项目的问题相同.
任何的想法 ?
先感谢您.
我用以下信息创建了一个新的pom(pom-web.xml)
<properties>
<sonar.branch>JS</sonar.branch>
<sonar.language>web</sonar.language>
</properties>
<build>
<sourceDirectory>src/main/webapp</sourceDirectory>
</build>
Run Code Online (Sandbox Code Playgroud)
似乎源目录已更改但指标仍为空.
[INFO] [12:11:54.486]执行org.apache.maven.plugins:maven-surefire-plugin:2.9:测试完成:545 ms
[INFO] [12:11:54.486]执行maven插件maven-surefire-plugin完成:545 ms
[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]来源目录:
[INFO] [12:11:54.487]
C:\ Work\Workspaces\Intellij\MyProject\src\main\webapp
与web和JS相同的行为.
我需要一个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>
Run Code Online (Sandbox Code Playgroud)
如果要分析JS和Web项目,您当前必须创建其他POM(或POM中的配置文件).在那些新的POM(或配置文件)中,您将"sourceDirectory"标记设置为正确的文件夹,您不会忘记在属性中指定"sonar.language".此外,这些新的POM /配置文件应该更改artifactId,以便您在Sonar中拥有不同的项目.
然后你可以运行"mvn clean sonar:sonar -f pom-javascript.xml"(新POM)或"mvn clean sonar:sonar -Pjavascript"(使用配置文件).
在不久的将来,Sonar将原生支持多语言项目.在那之前,你必须使用这个hack.
| 归档时间: |
|
| 查看次数: |
6196 次 |
| 最近记录: |