2009-10-06 53 views
3

当在同一个源代码主干或分支中存在多个版本的同一Web服务时,是否存在用于构造源代码的约定?构建多个Web服务版本的源代码

这是我们的情况。

url/project/1.0/WebServiceA?wsdl 

我要与1.0版本一起部署WebServiceA的1.1版本,以便1.0用户不必:

我们的版本我们通过包括这样的WSDL URL版本号的Web服务改变任何事情。 WebServiceA的版本1.0和1.1将拥有自己的独立Java类。

我想在相同的.war文件中部署两个版本。 (我们可以在.war中采用只有一个版本的Web服务的策略,并在他们自己的.war中部署其他版本。当我们获得几个Web服务的多个版本时,这会导致部署数量的增加。我宁愿只部署一个的.war)

我想我们应该只使用一个单独的封装结构的各种版本:

com.company.dept.ws.WebServiceA (version 1.0) 
com.company.dept.ws.v11.WebServiceA (version 1.1) 

com.company.dept.ws.WebServiceB (version 1.0) 
com.company.dept.ws.v11.WebServiceB (version 1.1) 
com.company.dept.ws.v12.WebServiceB (version 1.2) 

Java类下WS,ws.v11。 ,和ws.v12。将是独立的Java类。

您是否可以看到这个习俗中的任何问题?

如果对构建多个Web服务代码版本的源代码有一个经过验证的规范,我想在构建自己的代码之前先了解它。

谢谢。

院长

回答

0

既然你说你要这些版本全部是“在相同的源代码主干或分支”我认为答案部分取决于您使用的源代码控制系统,以及是否不你曾计划修复旧版本的错误。

如果您想要修复旧版本中的错误,您需要能够在不同版本之间向前或向后集成更改。例如,假设您发现版本1.0,1.1和1.2中存在的严重安全问题。你不想修复它3次。大多数源代码管理系统可以让你在相关分支之间进行这种集成。有些(比如Perforce,我也相信git,可能还有其他一些)可以让你在文件之间集成更改,甚至在分支中。 (实际上,Perforce的“分支”概念仅仅是记录文件间集成的便利)

因此,您需要考虑是否需要进行这些类型的多版本修复,如果是的话,你的女巫控制系统可以处理分行内部整合。如果没有,那么你可能会更好地为每个版本使用一个单独的分支。

+0

出于好奇:是否有一个原因,你想在一个分支做到这一切? – 2009-10-06 03:45:40

+0

两个版本都将同时部署,因此它们应该位于同一分支中。但是,它们基于不同的Java类。 – 2009-10-07 00:05:20