Maven项目+;Clearcase项目间交付问题

Maven项目+;Clearcase项目间交付问题,maven,clearcase,Maven,Clearcase,我们正在使用Clearcase,并将我们的大型项目迁移到Maven。我们在进行项目间交付时面临一个问题 我们有一个开发CC项目,大部分开发都发生在这个项目上。我们有pom.xml,它保存我们对自己的子项目的依赖关系的版本(这些版本是maven/pom版本) 在某种程度上,我们在生产中交付代码。所以我们创建了另一个CC项目。现在我们有了主要的CC项目(main)和一个基于它的新项目,该项目包含生产代码(PROD) PRODCC项目有一个固定版本(在pom.xml中)。例如1.1.0。主要分支继续发

我们正在使用Clearcase,并将我们的大型项目迁移到Maven。我们在进行项目间交付时面临一个问题

我们有一个开发CC项目,大部分开发都发生在这个项目上。我们有
pom.xml
,它保存我们对自己的子项目的依赖关系的版本(这些版本是maven/pom版本)

在某种程度上,我们在生产中交付代码。所以我们创建了另一个CC项目。现在我们有了主要的CC项目(
main
)和一个基于它的新项目,该项目包含生产代码(
PROD

PROD
CC项目有一个固定版本(在
pom.xml
中)。例如1.1.0。主要分支继续发展(版本1.2.0、1.3.0等)。因此,两个文件中的“相同”
pom.xml
是不同的

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

我们尝试使用概要文件和环境变量来解决这个问题,但没有成功。如果有人当通过这个问题,找到了一个聪明的解决方案

谢谢你的帮助


-Martin

问题来自UCM项目间交付过程中的自动合并。
一个解决办法是:

  • 首先签出/检查目标流中的pom.xml文件
  • 然后执行传递,这将触发对该文件的非平凡合并,从而允许您恢复目标文件(即不使用源版本,使用产品标签引用)

我不得不假设这是正确的(也许我的观点有偏见,但我很高兴我从未与CC合作过)+1@Pascal:谢谢你,是的,不管你有没有偏见,你很幸运不认识这只野兽;)我同意你们两个:-)我仍然希望有人能提出一个意想不到的神奇解决方案。。。就像一种从项目间交付中排除特殊文件(POM)的方法,但在没有大量触发器和Perl脚本的项目交付中不排除特殊文件。。。