当前位置: 首页 > 面试题库 >

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

海景曜
2023-03-14
问题内容

问题

我刚刚安装了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构建吗?

谢谢


问题答案:

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



 类似资料:
  • 在使用GradleV5.5.1的多项目构建中,我尝试将插件仅应用于某些子项目(如使用插件中所述)。您可以在这里看到,我试图将它应用于以结尾的子项目: 但是,它将其应用于我的项目(输出日志): 我做错了什么??

  • 16.1.使用 Ant 任务和 Ant 类型的构建 在构建脚本中, Ant 属性是由 Gradle提供的. 这是一个用于参考的 AntBuilder 实例. AntBuilder 用于从构建脚本访问 Ant 任务, 类型和属性. 下面的例子解释了从 Ant 的 build.xml 格式到 Grooy 的映射. 你可以通过调用 AntBuilder 实例的方法执行 Ant 任务. 你可以使用任务名称

  • 导入一个Ant构建 你可以在你的gradle项目中通过ant.importBuild()来导入一个ant构建,当你导入了一个ant构建,每一个ant target都会被视为一个Gradle任务.这意味着你可以像操作,执行gradle任务一样操作,执行ant target 例 16.8.导入ant构建 build.gradle ant.importBuild 'build.xml' build.xm

  • 插件{}块目前只能在一个项目的构建脚本中使用.他不能在脚本插件,settings.gradle和出书画脚本中使用. Gradle的未来版本将删除此限制.

  • 项目可以通过添加向构建脚本中加入插件的类路径然后在应用插件,添加作为外部JAR文件的二进制插件.外部jar可以使用buildscrip{}块添加到构建脚本类路径就像Section 62.6, “External dependencies for the build script”中描述的一样. Example 21.4. Applying a plugin with the buildscript

  • 我正在编写一个Eclipse插件,我想使用gradle tooling api来检查gradle项目的构建脚本,看看它是否应用了某些插件。 假设我有一个构建脚本,如下所示: