单个Jenkins工作,用于多个项目的SONAR分析

时间:2015-03-05 07:08:04

标签: jenkins parameters sonarqube

我需要通过 jenkins 中的 SONAR 分析许多项目。这些项目包括 ant maven 项目。我为詹金斯的每个SONAR分析创建了一个单独的工作。

是否可以使用单个jenkins作业,我可以从每个声纳作业中传递一些参数,然后查看仪表板?

如果是这样,我该怎么做呢?

2 个答案:

答案 0 :(得分:1)

此解决方案适用于Subversion和Maven。

  1. 安装Parameterized Trigger Plugin
  2. 为SonarQube分析创建Maven作业,例如。 _common-sonar具有以下设置:
    • 源代码管理“Subversion”存储库网址$PREVIOUS_SVN_URL签出策略“总是签出一份新的副本”
    • 构建目标和选项install
    • 制作后的操作“声纳”
  3. 对于要运行分析的作业,请使用以下设置添加构建后操作 “在其他项目上触发参数化构建”
    • 要构建的项目_common-sonar
    • 添加预定义参数参数PREVIOUS_SVN_URL=${SVN_URL}
  4. 现在,当作业分析完成时,它会触发分析作业。分析作业检出第一个作业使用的相同SVN URL。

    此解决方案无需脚本或复制工作区即可运行,但存在明显的局限性和非理想的功能:

    • 构建命令始终只有mvn install
    • SVN结帐可能来自与原始版本不同的版本
    • 结帐和构建总是从头开始
    • 我在这里根本没有考虑蚂蚁。

    非常欢迎改进的想法!

    延迟改进编辑:

    您也可以通过直接使用SonarQube来调用独立的SonarQube分析

    ,而不是使用maven构建(在_common-sonar中)

    除SVN URL外,您还可以为声纳中的构建标记和项目名称添加参数。只需添加

    • NAME = YOUR_PROJECT_NAME
    • BUILDTAG = $ BUILD_TAG
    在PREVIOUS_SVN_URL参数下面

    在_common-sonar中,您可以将其与 $ {NAME} $ {BUILDTAG} 一起使用。

答案 1 :(得分:0)

在我曾经有过的类似需求中,我创建了一个单独的工作,它抽取了几个项目的来源(每个项目都在作业工作区的子文件夹中)。 然后,我编写了一个简单的shell脚本,它遍历所有目录并运行声纳分析 这个工作有声纳后置构建插件,显示了汇总报告 不幸的是,我几年前没有一个例子,但你可以让它发挥作用。

我希望这会有所帮助。