小编典典

在jenkins插件中正确设置sonar.sources

jenkins

我正在尝试构建 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配置的 “生成后操作”中, 我尝试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与source的根目录没有任何问题,它正在编译项目。然后,我为此项目设置了詹金斯和声纳。我使用了詹金斯(Jenkins)的
后期制作动作Post-build Action)
对我的项目进行了声纳分析。这里的问题是“使用Maven运行分析时,某些SonarQube属性始终会被忽略,因为SonarQube内部是从POM馈送它们”-SONAR
-4536。这样的属性之一就是
sonar.sources 。因此,当我在Jenkins安装程序中尝试使用-
Dsonar.sources时,它没有工作。后来,我将pom修改为指向src / main / java,从而通过jenkins的构建后操作成功进行了分析。

我希望我已经澄清了。


阅读 947

收藏
2020-07-25

共1个答案

小编典典

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

查看您的项目pom.xml并检查。另外,请更新您的问题,以告诉您是在常规Java项目还是其他项目(例如android)上。

2020-07-25