这引出了关于询问Apache Maven和IBM Rational ClearCase是否集成良好的问题。以为我应该写出我发现的东西 - 需要进行各种编辑,但我最终会全力以赴地加入所有希望。
ClearCase - ClearCase的7.0.1.2版。
Maven - 全部来自Maven website。
Hudson - 直接从Hudson website
下载版本1.307我将所有版本的Maven2安装到VOB“堆叠”中,即我添加了2.0版本 - 标记了它,锁定了标签 - 然后在顶部添加了2.0.1。
为防止出现无关文件,我在clearfsimport中使用了-rnname标志。
这样,我可以简单地使用标签来指定我想要在我的配置规范中访问的Maven的版本,但仍然保持maven可执行文件的相同路径 - / maven / bin / mvn。
一旦安装了所有版本,我就可以通过 Dynamic View从那里运行Maven没有问题。存储库正常地从Nexus的内部安装下载到用户主目录 - 这样可以节省签入和签出的任何问题。
将工具保持在源代码管理中的一个好处是,您可以设置公司范围的设置(例如指向内部存储库) - 然后在任何平台上从VOB运行该单个Maven实例,这样可以保留您的设置最初设定!
在Maven项目中,我只将src目录和pom.xml保存在源代码管理中,因为之后其他所有内容都可以自动生成。
我设置Hudson与ClearCase动态视图一起运行没有问题。所有这一切都是从Hudson工作目录到视图根目录的符号链接(在本例中为/ view / xxx)。 ClearCase插件成功运行 ct lshistory ,以查找开发人员合并到的集成分支中是否有任何更改。
我写了一个小脚本来设置作业的初始环境 - 只是config.xml和动态视图符号链接 - 这样就可以在作业中列出正确的视图,并且初始设置是正确的。之后用户的任何增强都会更改为默认模板,而不是自己进行设置。
在Hudson的整体设置中,我使用$ CLEARCASE_VIEW环境变量来设置Maven可执行文件的路径。这样,Maven的版本取决于配置规范中设置的版本 - 而不是他们在Hudson中选择的版本。
这为我(管理员)和我的用户节省了额外的管理费用。
我将Sonatype Nexus设置为内部存储库管理器 - 主要是因为我在Sonatype blog中读到Hudson将与Nexus更加集成,我们也可能为将来的新增强做好准备。我还相信,当我设置并尝试它时,它为大型商业环境做了更多准备,因为您可以调整存储库管理器中的组以使其更灵活 - 对于大量项目非常有用。
答案 0 :(得分:2)
我在ClearCase之外有一些Maven存储库,供一些第三方图书馆参考。
但我从未使用过Maven 和 ClearCase,因为它们遵循不同的逻辑(Maven需要文件的签名名称,如myfile-1.2.jar,而ClearCase只能存储myfile.jar,并且记录它的版本标记为1.2)
这可能因Maven2 ClearCase plugin报告的romaintaz而发生了变化,但此新产品仍有一些错误,如thread所示,当第二次运行时没有unco'ing 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".
答案 1 :(得分:1)
我没有使用此SCM,但有一个名为SCM的Maven2 plugin处理Clearcase。
答案 2 :(得分:1)
我有一个使用Maven 2的团队建设,并使用Clearcase作为版本控制系统。我们使用Archiva作为构建工件的存储库,因此开发团队不需要使用SCM插件。
然而,持续集成服务器是Continuum,它依赖于POM中的SCM信息。我们遇到了Clearcase SCM使用分支策略抓取快照视图的问题。我的一位开发人员不得不调整Clearcase SCM代码以使其与我们的分支机构一起工作。在我们完成他的修复工作之前,我们都继续前进。