Maven、Hudson和动态Clearcase视图

3
这是关于Apache Maven和IBM Rational ClearCase是否良好集成的问题。我想写出我发现的内容 - 需要进行各种编辑,但我希望最终可以添加所有内容。
环境:
ClearCase - 版本7.0.1.2的ClearCase。
Maven - 来自Maven网站的所有版本。
Hudson - 直接从Hudson网站下载的版本1.307。

问题

  • Maven能否从一个VOB运行?

我将所有版本的Maven2安装到一个VOB中,即我添加了版本2.0 - 加了标签,锁定标签 - 然后在其上添加了2.0.1。

为了防止存在不必要的文件,我在clearfsimport中使用了-rnname标志。

这样,我就可以简单地使用一个标签来指定我想要访问的Maven版本的配置规范,并仍然保持相同路径的maven可执行文件 - /maven/bin/mvn。

一旦所有版本都安装好了,在动态视图中通过VOB运行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博客中读到Hudson将与Nexus更加集成,并且我们可能需要为将来的新增强做好准备。当我设置并尝试它时,我也相信它更适合大型商业环境,因为您可以调整存储库管理器中的组以使其更灵活,这对于许多项目非常有用。
3个回答

2
我有一些Maven仓库不在ClearCase里,用于一些第三方库的引用。
但我从未使用过与ClearCase一起的Maven,因为它们遵循不同的逻辑(Maven需要文件签名名称,例如myfile-1.2.jar,而ClearCase只能存储myfile.jar,并记录其版本标记为1.2)。
这可能已经随着Maven2 ClearCase插件的推出而改变,romaintaz报告说,但是这个新产品仍然存在一些错误,如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中文件的正确版本呢? - Spedge
myfile-1.2.jar --> myfile.jar@@/main/2 - Spedge
好的,考虑到我们需要管理的大量文件以及我们并不总是处于Unix环境中(即使在Windows中符号链接也是“可能”的),我们并不想引入额外的步骤。但你说得对,这是可能的。 - VonC

1

我没有使用这个版本控制系统,但是有一个Maven2插件叫做SCM可以处理Clearcase。


1

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

然而,持续集成服务器是Continuum,并且依赖于POM中的SCM信息。我们在使用清晰分支策略时,与Clearcase SCM抓取快照视图存在问题。我的一位开发人员必须调整Clearcase SCM代码以使其与我们的分支一起正常工作。但在我们贡献他的修复之前,我们两个人都已经离职了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接