3

问题

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

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

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

  3. 选中了说明:“检查这个项目是否不是用 maven 2 构建的”复选框 (我在这里很困惑)

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

    所以我也填写了这些。当我单击播放按钮“立即构建”时,构建似乎运行良好,因为它在安装声纳之前总是运行良好,但它在最后失败,因为它试图执行 MAVEN。

见如下:

$ mvn -f /root/.jenkins/jobs/HRDA/workspace/pom.xml -e -B sonar:sonar 致命:命令执行失败 java.io.IOException:无法运行程序“mvn”(在目录“/root/ .jenkins/jobs/HRDA/workspace"): java.io.IOException: error=2, No such file or directory

问题

  1. 如果我已选中表示如果您不使用 Maven 2 ,请选中此框,Sonar 为什么会尝试执行 Maven ?

  2. 如果我的应用是用 ANT、GANT、GRADLE 构建的,我可以使用这个 Sonar 插件吗?

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

谢谢, - 达里奥

4

1 回答 1

3

就像 Oers 在我的问题评论中建议的那样,如果您在 CI 服务器(在我的情况下为 Jenkins)中使用 ANT 作为构建脚本,您将不得不使用 SONAR-ANT-TASK 来生成声纳报告,请执行以下操作:

  1. 下载 MySQL 或任何其他 Sonar 支持的 RDBMS,例如 Postgres、Oracle 等。
  2. 下载并安装声纳服务器。
  3. 转到(声纳安装文件夹)/extras/database/mysql 并运行 create_database.sql 脚本。
  4. 在我的情况下,我必须使用 mysql 运行额外的 sql 语句,你可以在这里看到Unable to access Sonar MySQL database Caused by: java.sql.SQLException: Access denied for user 'sonar'@'glassfishdev.ccs.local' (使用密码:是)
  5. 通过键入 ./sonar.sh start 启动声纳
  6. 将 sonar ant 任务添加到您的构建脚本中。您可以按照此模板http://docs.codehaus.org/display/SONAR/Analyse+with+Ant+Task+1.0
  7. 如果您安装了 Hudson Sonar 插件,请不要选中配置屏幕中的声纳复选框,因为此插件仅适用于 Maven 项目。
  8. 单击“立即构建”按钮。如果上述所有操作都正确完成,您应该能够在http://ipaddressofmachinesonarisinstalled:9000/上看到报告

希望这会有所帮助,-达里奥

于 2011-08-31T14:32:15.227 回答