这源于询问 Apache Maven 和 IBM Rational ClearCase 是否集成良好的问题。我想我应该写下我发现的东西——需要进行各种编辑,但我最终会按我希望的方式添加它。
环境
ClearCase - ClearCase 版本 7.0.1.2.
Maven - 所有这些,来自Maven 网站。
Hudson - 1.307 版直接从Hudson 网站下载
问题
- Maven 是否从 VOB 运行?
我将所有版本的 Maven2 安装到 VOB 'stacked' 中,即我添加了 2.0 版本 - 标记它,锁定标签 - 然后在顶部添加 2.0.1。
为了防止出现无关文件,我在 clearfsimport 中使用了 -rnname 标志。
这样,我可以简单地使用标签在我的配置规范中指定我想要访问的 Maven 版本,但仍然为 maven 可执行文件保留相同的路径 - /maven/bin/mvn。
一旦安装了所有版本,我就可以通过动态视图从那里运行 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 进行更多集成,我们不妨为未来的新增强功能做好准备。我还相信,当我设置并尝试它时,它更适合大型商业环境,因为您可以调整存储库管理器中的组以更加灵活 - 对于大量项目很有用。