小编典典

Sonar插件不适用于使用ANT作为构建脚本的项目

jenkins

问题

我刚刚安装了Sonar Jenkins插件。我进入了配置的作业(自由样式作业),该作业通过ANT构建生成WAR文件工件,并且执行以下操作:

  1. 选中声纳复选框。(这里没有问题)

  2. 配置声纳的安装目录(这里没有问题)

  3. 选中以下复选框: “检查该项目是否不是用maven 2构建的” (我在这里感到困惑)

我已经选中了该框,因为我没有使用Maven进行构建,而是使用ANT,但它仍要求我提供类似于MVN的必需属性,例如:组织ID,项目ID,项目名称,项目版本,源目录。等

因此,我也填写了这些内容。当我单击播放按钮“立即构建”时,该构建似乎可以正常运行,就像在声纳安装之前一样,但是最终由于尝试执行MAVEN而最终失败。

如下所示:

$ mvn -f /root/.jenkins/jobs/HRDA/workspace/pom.xml -e
-B声纳:声纳致命:命令执行失败java.io.IOException:无法运行程序“ mvn”(在目录“ / root / .jenkins / jobs
/ HRDA / workspace“):java.io.IOException:错误= 2,没有这样的文件或目录

问题

  1. 如果我未选中 使用Maven 2 的复选框,则Sonar为什么要尝试执行Maven ?

  2. 如果我的应用程序是使用ANT,GANT,GRADLE构建的,我可以使用此Sonar插件吗?

  3. 我必须重新转换我的应用程序才能使用MVN构建吗?

谢谢


阅读 387

收藏
2020-07-25

共1个答案

小编典典

就像Oers在我的问题注释中建议的那样,如果您将ANT用作CI服务器中的构建脚本(在我的情况下为詹金斯),则必须使用SONAR-ANT-
TASK生成Sonar报告,操作如下:

  1. 下载MySQL或其他Sonar支持的RDBMS,例如Postgres,Oracle等。
  2. 下载并安装声纳服务器。
  3. 转到(声纳安装文件夹)/ extras / database / mysql并运行create_database.sql脚本。
  4. 在使用mysql的情况下,我不得不运行一个额外的sql语句,您可以在此处看到[无法访问Sonar MySQL数据库原因:java.sql.SQLException:用户’sonar’@’glassfishdev.ccs.local’(使用密码:是
  5. 通过输入./sonar.sh start来启动Sonar。
  6. 将声纳蚂蚁任务添加到您的构建脚本中。您可以遵循此模板http://docs.codehaus.org/display/SONAR/Analyse+with+Ant+Task+1.0
  7. *如果已安装Hudson Sonar插件,请 *不要 在“配置”屏幕中选中“声纳”复选框,因为该插件仅适用于Maven项目。
  8. 单击“立即构建”按钮。如果上述所有操作均已正确完成,则您应该可以在http:// ipaddressofmachinesonarisinstalled:9000 /上看到报告。

希望这会有所帮助,-Dario

2020-07-25