2010-11-02 54 views
1

我们使用Clearcase,并将我们的大项目迁移到Maven。在进行项目间交付时我们遇到了问题。Maven项目+ ClearCase跨项目交付问题

我们有一个发展CC项目,其中大部分发展发生。我们有pom.xml,它将我们的依赖版本保存到我们自己的子项目中(这些版本是maven/pom版本)。

在某些时候,我们在生产中提供代码。所以我们创建了另一个CC项目。所以现在我们有我们的主要CC项目(MAIN)和一个新的基地,它持有产品代码(PROD)。

PROD CC项目有一个修复版本(在pom.xml)。例如1.1.0。 MAIN分支继续发展(版本1.2.0,1.3.0,...)。所以这两个文件中的“相同”pom.xml是不同的。

当我们想要在生产中提供补丁(或功能)时,会出现问题:我们修改了PROD CC项目,并在生产中发货(更新版本:1.1.1)。然后我们想要执行从PRODMAIN的跨项目交付,以避免两次编写代码。当我们这样做时,来自DEVpom.xml文件被来自PROD的文件覆盖,并具有旧版本依赖关系和工件版本。

我们试图使用配置文件和环境变量来解决这个问题,但没有成功。如果有人通过这个问题,发现一个聪明的解决方案?

感谢您的帮助,

-Martin

回答

2

的问题来自于UCM项目间传递过程中进行自动合并。
一种解决方案将是:

  • 结帐/检查pom.xml文件在目的地流首先,
  • 然后执行传送将触发在该文件上一个非平凡合并,允许你要恢复目标文件(即不采取源版本,与PROD标签参考)
+0

我必须假设这是正确的(也许我的意见是有偏见的,但我很高兴我从来没有工作过CC)。 +1 – 2010-11-02 16:59:44

+0

@帕斯卡尔:谢谢你,是的,偏见与否,你很幸运,不知道这个特别的野兽;) – VonC 2010-11-02 18:39:51

+0

我同意你们两个:-)我仍然希望有人提出一个意想不到的神奇解决方案...就像一种排除粒子文件(poms)的方式,可以形成项目间的交付,但不包含没有大量触发器和Perl脚本的项目内交付... – Martin 2010-11-02 18:49:25