Continuous integration Jazz SCM持续集成-构建流与工作区?

Continuous integration Jazz SCM持续集成-构建流与工作区?,continuous-integration,build-automation,jazz,Continuous Integration,Build Automation,Jazz,我正在使用RationalTeamConcert(RTC)IDE和Jazz构建引擎为SpringRoo应用程序建立一个持续集成构建。设置构建定义时,Jazz源代码管理选项卡上的构建工作区字段允许选择用户的存储库工作区或流 Jazz构建资源和其他Jazz构建资源始终指使用与构建用户相关联的专用存储库工作区,这使我相信这是首选方法。我无法直接从溪流中找到任何关于建筑的信息。我们的项目流包含构建所需的所有工件,我已经测试并确认持续集成构建可以从流中工作。我想不出为什么我需要为此创建和管理一个特定的工作

我正在使用RationalTeamConcert(RTC)IDE和Jazz构建引擎为SpringRoo应用程序建立一个持续集成构建。设置构建定义时,Jazz源代码管理选项卡上的构建工作区字段允许选择用户的存储库工作区或流

Jazz构建资源和其他Jazz构建资源始终指使用与构建用户相关联的专用存储库工作区,这使我相信这是首选方法。我无法直接从溪流中找到任何关于建筑的信息。我们的项目流包含构建所需的所有工件,我已经测试并确认持续集成构建可以从流中工作。我想不出为什么我需要为此创建和管理一个特定的工作区


我的问题是,我是不是直接在溪流边建房子来玩火?这种方法是否存在我不知道的潜在下游并发症

回答我自己的问题,以防其他SO用户将来有相同的问题

经过一些实验,我发现直接从流构建的一个缺点是它忽略了Jazz源代码管理选项卡上的“仅在接受更改时构建”属性。因此,流中的生成只能在预定义的时间间隔内完成—无法将生成配置为仅在新更改提交到流时发生


构建需要一个专用的工作区来接受来自流的新更改,并使用它们来触发构建请求。

这里还有一个很大的区别。这与构建如何完成有关。让我在这里强调一下区别

如果您是从专用的构建存储库工作区构建的,那么您的构建工作区已经有了所有代码的副本。交付更改并启动生成后,只需更新更改的文件(更改集)并将其从存储库物理复制到生成存储库工作区。由于大多数更改都很小,因此需要从存储库中复制0.1%到2%的代码库

如果您是从“流”构建的,那么需要创建构建工作区(您必须在某处编译!)。因此,在创建此代码库时,需要更新整个代码库,并将其从存储库物理复制到构建存储库工作区。这意味着从存储库中检索100%的代码库

每个文件操作都涉及一个发现所需资源的调用,从托管存储库的数据库中获取该资源,然后让Jazz应用程序通过网络提供该源文件。它会导致数据库服务器、web服务器和应用程序服务器上的负载。像这样下载的越多,这些组件的负载就越大

您可以使用一些方法来最小化Jazz基础架构上的负载。使用内容缓存代理(使用简单的Squid代理服务器)可以有所帮助

有关您的选项的更多详细信息,以及这些选项的相对优点,请阅读我关于Jazz性能问题的博客文章和白皮书()。那篇文章已经有将近一年的历史了,但仍然有效。您还可以查看Jazz部署Wiki(),并查看有关性能故障排除和性能问题的部分