声纳中的空指标用于web和javascript项目

时间:2013-02-08 15:24:28

标签: javascript jsp maven web sonarqube

初始帖子

我使用多种工具进行持续集成:

  • Maven 3.0.4
  • Sonar 3.3
  • Sonar Web插件1.2
  • Sonar Javascript Plugin 1.1
  • Jenkins 1.486

一切都适用于Java项目和XML项目。

我遇到了Javascript和网络项目的问题。项目是在Sonar中创建的,但它们都是空的。

以下是javascript项目的堆栈跟踪示例

  

[INFO] --- sonar-maven-plugin:2.0-beta-2:声纳(默认-cli)@   MyProject ---

     

[INFO]声纳版本:3.3

     

[INFO] [15:59:24.937]为...创建JDBC数据源   JDBC:MySQL的://声纳-02:3306 /声纳

     

[INFO] [15:59:41.190]初始化Hibernate

     

[INFO] [15:59:43.318] -------------分析MyProject JS

     

[INFO] [15:59:43.573]质量简介:   [名称= myProfileJavascript,语言= 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:\工作\工作区\的Intellij \ MyProject的\ SRC \主\ java中

     

[INFO] [15:59:43.881]测试目录:

     

[INFO] [15:59:43.882]
  C:\工作\工作区\的Intellij \ MyProject的\ SRC \测试\ 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 ms

     

[INFO] [15:59:44.183]传感器JavaScriptSourceImporter ...

     

[INFO] [15:59:44.335]传感器JavaScriptSourceImporter完成:152 ms

     

[INFO] [15:59:44.335]传感器JavaScriptSquidSensor ......

     

[INFO] [15:59:44.520]传感器JavaScriptSquidSensor完成:185 ms

     

[INFO] [15:59:44.520]传感器JsTestDriverSurefireSensor ......

     

[INFO] [15:59:44.526]传感器JsTestDriverSurefireSensor完成:6 ms

     

[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 ms

     

[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 ms

     

[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]执行岗位课程   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>

与网络项目存在同样的问题。

任何想法?

提前谢谢。

编辑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:测试完成: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 ms

     

[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:\工作\工作区\的Intellij \ MyProject的\ SRC \主\ web应用

与web和JS相同的行为。

编辑11/02/2013:找到解决方案

我需要一个pom文件。所以我通过配置文件管理声纳属性。作为&#34; sourceDirectory&#34;在配置文件中无法定义,我使用自定义属性。

该物业&#34; sonar.branch&#34;使我能够为我的项目提供几个声纳条目。

<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>

1 个答案:

答案 0 :(得分:6)

如果要分析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将原生支持多语言项目。在那之前,你必须使用这个黑客。