gpt4 book ai didi

javascript - Web 和 JavaScript 项目 Sonar 中的空指标

转载 作者:数据小太阳 更新时间:2023-10-29 04:14:59 25 4
gpt4 key购买 nike

初始帖子

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

  • maven 3.0.4
  • Sonar 3.3
  • Sonar 网络插件 1.2
  • Sonar Javascript 插件 1.1
  • Jenkins 1.486

Java 项目和 XML 项目一切正常。

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

这是一个 javascript 项目的堆栈跟踪示例

[INFO] --- sonar-maven-plugin:2.0-beta-2:sonar (default-cli) @ MyProject ---

[INFO] Sonar version: 3.3

[INFO] [15:59:24.937] Create JDBC datasource for jdbc:mysql://sonar-02:3306/sonar

[INFO] [15:59:41.190] Initializing Hibernate

[INFO] [15:59:43.318] ------------- Analyzing MyProject JS

[INFO] [15:59:43.573] Quality profile : [name=myProfileJavascript,language=js]

[INFO] [15:59:43.612] Configure maven plugins...

[INFO] [15:59:43.653] Compare to previous analysis (2013-02-08)

[INFO] [15:59:43.672] Compare over 5 days (2013-02-03, analysis of 2013-02-07 12:29:08.0)

[INFO] [15:59:43.682] Compare over 30 days (2013-01-09, analysis of 2013-02-07 12:29:08.0)

[INFO] [15:59:43.877] Initializer ProjectFileSystemLogger...

[INFO] [15:59:43.878] Excluded tests: [**/package-info.java]

[INFO] [15:59:43.881] Source directories:

[INFO] [15:59:43.881]
C:\Work\Workspaces\Intellij\MyProject\src\main\java

[INFO] [15:59:43.881] Test directories:

[INFO] [15:59:43.882]
C:\Work\Workspaces\Intellij\MyProject\src\test\java

[INFO] [15:59:43.882] Initializer ProjectFileSystemLogger done: 5 ms

[INFO] [15:59:43.882] Initializer MavenInitializer...

[INFO] [15:59:43.884] Java source version: 1.6

[INFO] [15:59:43.884] Java target version: 1.6

[INFO] [15:59:43.884] Initializer MavenInitializer done: 2 ms

[INFO] [15:59:44.183] Sensor JavaScriptSourceImporter...

[INFO] [15:59:44.335] Sensor JavaScriptSourceImporter done: 152 ms

[INFO] [15:59:44.335] Sensor JavaScriptSquidSensor...

[INFO] [15:59:44.520] Sensor JavaScriptSquidSensor done: 185 ms

[INFO] [15:59:44.520] Sensor JsTestDriverSurefireSensor...

[INFO] [15:59:44.526] Sensor JsTestDriverSurefireSensor done: 6 ms

[INFO] [15:59:44.526] Sensor JsTestDriverCoverageSensor...

[INFO] [15:59:44.584] Sensor JsTestDriverCoverageSensor done: 58 ms

[INFO] [15:59:44.584] Sensor CpdSensor...

[INFO] [15:59:44.585] SonarBridgeEngine is used

[INFO] [15:59:44.642] Sensor CpdSensor done: 58 ms

[INFO] [15:59:44.642] Sensor ProfileSensor...

[INFO] [15:59:44.725] Sensor ProfileSensor done: 83 ms

[INFO] [15:59:44.725] Sensor ProfileEventsSensor...

[INFO] [15:59:44.752] Sensor ProfileEventsSensor done: 27 ms

[INFO] [15:59:44.753] Sensor ProjectLinksSensor...

[INFO] [15:59:44.791] Sensor ProjectLinksSensor done: 38 ms

[INFO] [15:59:44.791] Sensor VersionEventsSensor...

[INFO] [15:59:44.820] Sensor VersionEventsSensor done: 29 ms

[INFO] [15:59:44.820] Sensor Maven dependencies...

[INFO] [15:59:48.148] Sensor Maven dependencies done: 3328 ms

[INFO] [15:59:48.517] Execute decorators...

[INFO] [15:59:48.856] ANALYSIS SUCCESSFUL, you can browse http://sonarServer:9000

[INFO] [15:59:48.857] Executing post-job class org.sonar.plugins.core.batch.IndexProjectPostJob

[INFO] [15:59:49.140] Executing post-job class org.sonar.plugins.dbcleaner.ProjectPurgePostJob

[INFO] [15:59:49.154] -> Keep one snapshot per day between 2013-01-11 and 2013-02-07

[INFO] [15:59:49.156] -> Keep one snapshot per week between 2012-12-14 and 2013-01-11

[INFO] [15:59:49.157] -> Keep one snapshot per month between 2011-04-08 and 2012-12-14

[INFO] [15:59:49.157] -> Delete data prior to: 2011-04-08

[INFO] [15:59:49.163] -> Clean MyProject JS [id=57524]

[INFO] [15:59:49.167] <- Clean snapshot 1690793

我可以看到 Sonar 正在使用 C:\Work\Workspaces\Intellij\MyProject\src\main\java

在我的 pom 中,我已经在不改变 Sonar 行为的情况下测试了几个属性。

 <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 之后 - Sonar 团队评论

我使用以下信息创建了一个新的 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] Execute org.apache.maven.plugins:maven-surefire-plugin:2.9:test done: 545 ms

[INFO] [12:11:54.486] Execute maven plugin maven-surefire-plugin done: 545 ms

[INFO] [12:11:54.486] Initializer JacocoMavenInitializer...

[INFO] [12:11:54.486] Initializer JacocoMavenInitializer done: 0 ms

[INFO] [12:11:54.486] Initializer ProjectFileSystemLogger...

[INFO] [12:11:54.487] Excluded tests: [**/package-info.java]

[INFO] [12:11:54.487] Source directories:

[INFO] [12:11:54.487]
C:\Work\Workspaces\Intellij\MyProject\src\main\webapp

Web 和 JS 的行为相同。

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

我需要一个 pom 文件。因此,由于配置文件,我管理了 Sonar 属性。由于“sourceDirectory”在配置文件中不可重新定义,我使用自定义属性。

属性“sonar.branch”使我能够为我的项目设置多个 Sonar 条目。

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

最佳答案

如果您想分析 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。

关于javascript - Web 和 JavaScript 项目 Sonar 中的空指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14775802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com