【问题标题】:Single Jenkins job for SONAR analysis of multiple projects单个 Jenkins 作业,用于多个项目的 SONAR 分析
【发布时间】:2015-12-11 19:37:00
【问题描述】:

我有许多项目需要由 jenkinsSONAR 分析。这些项目包括 antmaven 项目。我为 jenkins 中的每个 SONAR 分析创建了一个单独的作业。

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

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

【问题讨论】:

    标签: jenkins parameters sonarqube


    【解决方案1】:

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

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

    现在,当分析作业完成时,它会触发分析作业。分析作业检查第一个作业使用的相同 SVN URL。

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

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

    非常欢迎改进想法!

    后期改进编辑:

    除了使用 maven 构建(在 _common-sonar 中),您还可以通过调用独立 SonarQube 分析直接使用 SonarQube

    除了 SVN URL,您还可以为构建标签和项目名称添加参数以在声纳中使用。只需添加

    • NAME=YOUR_PROJECT_NAME
    • BUILDTAG=$BUILD_TAG

    在 PREVIOUS_SVN_URL 参数下方。

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

    【讨论】:

      【解决方案2】:

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

      我希望这会有所帮助。

      【讨论】:

      • 您是否有机会展示一些伪代码或尝试恢复该 shell 脚本?我正在尝试设置类似的东西(在 Windows 上,顺便说一句),但此时我对声纳一无所知。
      猜你喜欢
      • 2021-11-22
      • 2014-07-17
      • 2015-09-01
      • 2019-04-06
      • 2015-08-26
      • 2018-01-30
      • 1970-01-01
      • 2012-10-27
      • 1970-01-01
      相关资源
      最近更新 更多