【问题标题】:Maven, Hudson and Dynamic Clearcase ViewsMaven、Hudson 和动态 Clearcase 视图
【发布时间】:2010-09-22 19:56:11
【问题描述】:

这源于询问 Apache Maven 和 IBM Rational ClearCase 是否集成良好的问题。我想我应该写下我发现的内容 - 需要进行各种编辑,但我最终会按我希望的方式添加它。

环境

ClearCase - ClearCase 版本 7.0.1.2。

Maven - 全部来自Maven website

Hudson - 1.307 版直接从Hudson website 下载


问题

  • Maven 是否从 VOB 运行?

我将所有版本的 Maven2 安装到一个“堆叠”的 VOB 中,即我添加了 2.0 版本 - 标记它,锁定标签 - 然后在顶部添加 2.0.1。

为了防止出现无关文件,我在 clearfsimport 中使用了 -rnname 标志。

这样,我可以简单地使用标签在我的配置规范中指定我想要访问的 Maven 版本,但仍然为 maven 可执行文件保留相同的路径 - /maven/bin/mvn。 em>

一旦安装了所有版本,我就可以通过 Dynamic 视图从那里运行 Maven。存储库会像往常一样从 Nexus 的内部安装下载到用户的主目录 - 这样可以避免签入和签出的任何问题。

将工具保留在源代码控制中的一个好处是,您可以设置公司范围的设置(例如指向内部存储库) - 然后在任何平台上从 VOB 运行单个 Maven 实例,这会保留您的设置原定!

在 Maven 项目中,我只将 src 目录和 pom.xml 保留在源代码管理中,因为之后可以自动生成其他所有内容。

  • Hudson 是否使用 ClearCase?

我在设置 Hudson 以使用 ClearCase 动态视图运行时没有问题。所需要的只是从 Hudson 的工作目录到视图根目录(在本例中为 /view/xxx)的符号链接。 ClearCase 插件成功运行 ct lshistory 以查找开发人员合并到的集成分支中是否有任何更改。

我确实编写了一个小脚本来设置作业的初始环境 - 只是 config.xml 和动态视图符号链接 - 以便在作业中列出正确的视图并且初始设置是正确的。之后用户所做的任何增强都是对默认模板的更改,而不是他们自己设置。

在 Hudson 的整体设置中,我使用了 $CLEARCASE_VIEW 环境变量来设置 Maven 可执行文件的路径。这样一来,Maven 的版本取决于配置规范中设置的版本,而不是他们在 Hudson 中选择的版本。

这为我(管理员)和我的用户节省了额外的管理。

  • 您使用的是什么内部存储库管理器?

我将 Sonatype Nexus 设置为内部存储库管理器 - 主要是因为我在 Sonatype blog 中读到,Hudson 将与 Nexus 进行更多集成,我们不妨为未来的新增强功能做好准备。我还相信,当我设置并试用它时,它更适合大型商业环境,因为您可以调整存储库管理器中的组,使其更加灵活 - 对大量项目有用。

【问题讨论】:

    标签: maven-2 hudson clearcase nexus


    【解决方案1】:

    我有一个团队使用 Maven 2 构建并使用 Clearcase 作为版本控制系统。我们使用 Archiva 作为构建工件的存储库,因此开发团队不需要使用 SCM 插件。

    但是,持续集成服务器是 Continuum,它依赖于 POM 中的 SCM 信息。我们遇到了 Clearcase SCM 使用分支策略抓取快照视图的问题。我的一位开发人员不得不调整 Clearcase SCM 代码以使其与我们的分支一起工作。在我们开始为他的修复做出贡献之前,我们都继续前进。

    【讨论】:

      【解决方案2】:

      我在 ClearCase 之外有一些 Maven 存储库,供一些第三方库参考。

      但我从未使用过 Maven with ClearCase,因为它们遵循不同的逻辑(Maven 需要文件的签名名称,例如 myfile-1.2.jar,而 ClearCase 只能存储 myfile.jar,并记录事实上它是标记为 1.2 的版本)

      这可能随着romaintaz 报告的Maven2 ClearCase plugin 而改变,但是这个新产品中仍然存在一些错误,如thread 所示,当一个人在没有解开 pom 的情况下再次运行它时文件。 Maven 正在顺利完成结帐,但无论下一步是什么都无法完成。

      INFO Checking out file: /opt/viewstore/common/maven/my_lf_ss/vobs/test_alm/LF_Build/pom.xml
      INFO ERROR BUILD FAILURE
      INFO INFO Unable to enable editing on the POM
      Provider message:
      The cleartool command failed.
      Command output:
      cleartool: Error: Element "/opt/viewstore/common/maven/my_lf_ss/vobs/test_alm/LF_Build/pom.xml" is already checked out to view "my_lf_ss".
      

      【讨论】:

      • 那么如何使用符号链接链接到 Clearcase 中正确版本的文件?
      • myfile-1.2.jar --> myfile.jar@@/main/2
      • 好吧,我们不想引入那个额外的步骤,考虑到我们必须管理大量的文件,而且我们并不总是在 unix 环境中(即使符号链接是“可能的”在 Windows 中)。但你是对的,这是可能的。
      【解决方案3】:

      我没有使用此 SCM,但有一个名为 SCM 的 Maven2 plugin 处理 Clearcase。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-07-05
        • 1970-01-01
        • 2012-02-19
        • 1970-01-01
        • 2012-08-31
        • 2014-06-24
        • 1970-01-01
        相关资源
        最近更新 更多