【问题标题】:correctly setting sonar.sources in jenkins plugin在 jenkins 插件中正确设置 sonar.sources
【发布时间】:2013-10-25 15:30:47
【问题描述】:

我正在尝试构建一个 Android java 项目 分支:feature-Fprototype_app

我收到此错误:

[INFO] [13:38:36.470] Base dir: /Users/Shared/Jenkins/Home/jobs/Textify/workspace/mobile 
[INFO] [13:38:36.470] Working dir: /Users/Shared/Jenkins/Home/jobs/Textify/workspace/mobile/target/sonar 
[INFO] [13:38:36.470] Source dirs: /Users/Shared/Jenkins/Home/jobs/Textify/workspace/mobile/src 
[INFO] [13:38:36.470] Binary dirs: /Users/Shared/Jenkins/Home/jobs/Textify/workspace/mobile/target/classes 
[INFO] [13:38:36.470] Source encoding: UTF-8, default locale: en_US 
[INFO] [13:38:36.489] Sensor JavaSourceImporter... 
[INFO] [13:38:36.710] Sensor JavaSourceImporter done: 221 ms 
[INFO] [13:38:36.710] Sensor JavaSquidSensor... 
[INFO] [13:38:36.800] Java AST scan... 
[ERROR] Sonar is unable to analyze file : '/Users/Shared/Jenkins/Home/jobs/Textify/workspace/mobile/src/main/java/com/simpragma/apps/textify/db/BookmarkDao.java' 
[INFO]
    ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------- 
[INFO] Total time:14.245s 
[INFO] Finished at: Thu Oct 17 13:38:36 GMT+05:30 2013 
[INFO] Final Memory: 14M/102M 
[INFO]
    ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.1:sonar (default-cli) on project Textify: Can not execute SonarQube analysis: Sonar is unable to analyze file :

    **'/Users/Shared/Jenkins/Home/jobs/Textify/workspace/mobile/src/main/java/com/simpragma/apps/textify/db/BookmarkDao.java': The source directory does not correspond to the package declaration** com.simpragma.apps.textify.db -> 
[Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.1:sonar (default-cli) on project Textify: Can not execute SonarQube analysis

在 jenkins 配置 Post Build Action 我试图在 Additional properties 框中设置sonar.sources(因为当我搜索错误时,人们建议设置源的正确路径)。我尝试了很多组合,例如:

 -Dsonar.sources=mobile/src/main/java
 -Dsonar.sources=/Users/Shared/Jenkins/Home/jobs/Textify/workspace/mobile/src/main/java
 -Dsonar.sources=/Users/Shared/Jenkins/Home/jobs/Textify/workspace/mobile

还是一样的错误。 我做错了什么?

好吧,让我清理一下我造成的混乱。 首先,它是一个 android maven 项目。包结构是 com.xyz.abc,源根目录是 src/main/java。在 pom.xml 中,sourceDirectory 属性最初设置为指向 src。看来maven对源码的根没有任何问题,它正在编译项目。 然后,我为这个项目设置了 jenkins 和 sonar。我使用 Jenkins 的 Post-build Action 对我的项目设置声纳分析。这里的问题是“使用 Maven 运行分析时,总是忽略某些 SonarQube 属性,因为 SonarQube 在内部从 POM 提供它们”-SONAR-4536。其中一个属性是 sonar.sources 。因此,当我在 Jenkins 设置中尝试使用 -Dsonar.sources 时,它不起作用。 后来我修改了我的 pom 以指向 src/main/java 这导致通过 jenkins 构建后操作成功分析。

我希望我已经澄清了。

【问题讨论】:

    标签: jenkins sonarqube


    【解决方案1】:

    如果您的项目是 Maven 项目并且您正在使用 SonarQube Maven 插件,则源位置取自 Maven 模型。属性 sonar.sources 仅在使用 SonarQube Runner 执行分析时使用。

    查看您的项目 pom.xml 并检查 .另外请更新您的问题,以说明您是在使用常规 Java 项目还是其他任何项目(如 android)。

    【讨论】:

    • 不工作。我也试过这些: sonar.sources=/Users/Shared/Jenkins/Home/jobs/Textify/workspace/mobile/src/main/java sonar.sources=/Users/Shared/Jenkins/Home/jobs/Textify/workspace/ mobile/src 此外,帮助文本说使用 -D:可选。要传递给 mvn 可执行文件的附加属性(例如:-Dsome.property=some.value)。有关这些附加属性的详细文档,请参阅分析参数。不要在这里使用“sonar.branch”属性,而是使用上面的“branch”选项。
    • 在我的 pom 中,我将 src 更改为 mobile/src。它现在正在工作。
    • 好的,我现在看到您正在使用 Maven 构建。所以你不能改变 sonar.sources 的价值。只需配置您的 Maven 项目,使 Maven 源为 src/main/java。
    • 我正在使用 jenkins 的后期构建操作。我匆忙写了上面的评论。实际上,当我将 pom.xml 中的 sourceDirectory 设置为本地 mobile/src 并运行 mvn sonar:sonar 命令时,它会在命令提示符下导致成功,但没有生成报告。
    【解决方案2】:

    维卡斯,

    您必须为 Java 分析指定为声纳属性的源目录必须是代码中包声明的根目录。

    见: http://qualilogy.com/en/install-sonarqube-first-analysis-with-sonarqube-runner/ http://qualilogy.com/en/install-sonarqube-sonarqube-analysis-with-jenkins/

    问候, JP

    【讨论】:

    • mvn -f mobile/pom.xml sonar:sonar -Dsonar.sources=/Users/Shared/Jenkins/Home/jobs/Textify/workspace/mobile/src/main/java 此命令失败并出现同样的错误。
    猜你喜欢
    • 2017-09-19
    • 1970-01-01
    • 2016-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多