【问题标题】:How to hook PMD + Clover in Hudson build using maven?如何使用 maven 在 Hudson 构建中连接 PMD + Clover?
【发布时间】:2012-07-25 19:56:57
【问题描述】:

我们新设置了一个 Hudson(是的.. Hudson,不是 Jenkins)CI。在 Hudson 安排的工作执行以下操作

一个。连接到 IBM ClearCase 存储库以下载最新的源代码
湾。编译所有 java 源代码并创建一个 WAR 文件(通过运行项目的 pom.xml)
C。将其部署到 Tomcat6 服务器

现在,我想更进一步,在此过程中引入自动“静态代码分析器”。

我在我的 Hudson 实例中安装了 PMD/Clover/JavaNCSS 插件,但是在查看它的设置时,这些插件似乎不会执行静态代码分析。相反,它们将仅依赖于 Maven-PMD/Clover/JavaNCSS 插件生成的报告,然后显示它们。

但是,如果 PMD/Clover/JavaNCSS 检查导致违规超出阈值限制,我的目标是创建设置以构建失败

谁能告诉我下一步该怎么做?

注意:如果一切正常,接下来我想阻止开发人员将他们的代码签入 ClearCase,以防出现任何违反编码标准的情况。对此有何指点?

【问题讨论】:

    标签: hudson maven-3 clearcase pmd clover


    【解决方案1】:

    阻止开发人员将他们的代码签入到 ClearCase 中,以防出现任何违反编码标准的情况

    这意味着锁定。
    锁定 UCM 流(如果您使用 ClearCase UCM)或锁定由 Hudson 监控的分支。
    cleartool lock

    这个想法是防止任何人结帐/检查(除了哈德逊使用的帐户,如果它需要修改任何文件)


    在“构建失败”部分,Conditional BuildStep Plugin 之类的插件可能会有所帮助(Jenkins 的插件,但它也可以移植到 Hudson)

    【讨论】:

    • 感谢您的回复。我们正在使用 BaseClearCase。我们的 Hudson 目前没有实时监控 ClearCase SCM 的任何结帐/签入更改。 Hudson 刚刚配置了一个每天在指定时间运行的作业。

      防止任何人结帐/检查
      我认为我们应该放置一个 ClearCase 触发器来实现这一点。您能否说明在何处以及如何应用您的解决方案(即阻止任何人签入/签出)
    • @yathirigan 不需要触发器(即 ClearCase 不需要对某些外部工具条件采取行动:外部工具需要告诉 ClearCase 做什么以及何时做什么)。您的作业必须使用在分支上配置的视图才能获取所需的源:如果失败,则锁定该分支。但是,要添加额外的步骤,我提到的插件可以提供帮助。
    • 因为我们的 ClearCase 实例是“Base ClearCase”而不是 UCM,所以我们不会有任何分支。在这种情况下,我应该锁定 VOB 中的代码文件夹吗?
    • 所以我的理解是,Hudson 的 Job 将监视我的 VOB 中的 Code 文件夹以进行任何签入操作。并且该作业必须配置为在触发签入时运行。该作业将从 ClearCase 获取源代码,运行 PMD 检查,如果超出阈值,我们需要将 vob/文件夹锁定在其中。你能否澄清我的理解是否正确?
    • @yathirigan base ClearCase 等于分支,UCM 等于与分支关联的流。如果您的 Hudson 正在监视 VOB 中的文件夹,这涉及(基本 ClearCase)视图,您可以从中提取配置规范(cleartool catcs),它将显示此处使用的分支。 (可能是大师)。这就是在构建失败时要锁定的分支。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 2013-10-30
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    相关资源
    最近更新 更多