【问题标题】:Hudson - SCM Polling configuration to detect revision changes of the subprojectsHudson - SCM 轮询配置以检测子项目的修订更改
【发布时间】:2012-06-17 06:38:28
【问题描述】:

我有一个 maven 项目,它有两个子项目,在我的 SVN 存储库中使用 svn:externals 定义。换句话说,我的项目层次结构如下:

-父项目

  • 项目
  • 测试项目

当我配置我的 hudson 作业时,我只输入了我父项目的 SVN 地址。当我手动触发构建时,我能够检查所有层次结构并能够运行所有 maven 目标。

所以现在,我想为我的构建配置 SCM 轮询机制,这样当我提交代码(尤其是子项目)时,就会触发构建。问题是 SCM 轮询查看我的父项目的修订号,它没有检测到我的子项目修订更改。

有什么方法可以强制 hudson 也查看我的子项目修订更改?您还有其他想法吗?

提前致谢。

【问题讨论】:

    标签: svn version-control hudson


    【解决方案1】:

    您可以指定多个存储库 URL 并将它们放在适当的位置。例如:

    父项目:

    存储库 URL:

    svn://server/repoparent/trunk
    

    本地模块目录:

    .
    

    项目:

    存储库 URL:

    svn://server/repoproject/trunk
    

    本地模块目录:

    ./somepath/project
    

    测试项目:

    存储库 URL:

    svn://server/repotest/trunk
    

    本地模块目录:

    ./somepath/project/tests
    

    然后,Hudson 将对 repoparent/trunkrepoproject/trunkrepotest/trunk 中的任何一个变化做出反应。

    【讨论】:

    • 我的父项目已经在其 pom.xml 中将我的子项目视为模块,因此当我触发构建时,作业运行所有 maven 目标(父子项目)都会执行。那么将所有 3 个 svn 存储库添加到作业中是真的吗? PS:我已经解决了提交后挂钩方法(wiki.jenkins-ci.org/display/JENKINS/Subversion+Plugin)的问题。感谢您的回复
    • 是的,提交后挂钩可能是您可以轻松访问它的最佳选择。轮询选项将有一个不必要的结帐(它不是那么糟糕,但仍然没有那么优雅)。我认为你应该发布你的答案。
    猜你喜欢
    • 2012-04-24
    • 1970-01-01
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    相关资源
    最近更新 更多