【发布时间】: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