Web services 为web服务的多个版本构建源代码

Web services 为web服务的多个版本构建源代码,web-services,jax-ws,Web Services,Jax Ws,当同一源代码主干或分支中存在同一web服务的多个版本时,是否有组织源代码的约定 这是我们的情况 我们通过在wsdl URL中包含版本号来对web服务进行版本化,如下所示: url/project/1.0/WebServiceA?wsdl 我将部署WebServiceA的1.1版和1.0版,这样1.0版的用户就不必做任何更改。WebServiceA的1.0版和1.1版将有各自独立的Java类 我想在同一个.war文件中部署这两个版本。(我们可以在.war中只采用一个web服务版本的策略,并在其自

当同一源代码主干或分支中存在同一web服务的多个版本时,是否有组织源代码的约定

这是我们的情况

我们通过在wsdl URL中包含版本号来对web服务进行版本化,如下所示:

url/project/1.0/WebServiceA?wsdl
我将部署WebServiceA的1.1版和1.0版,这样1.0版的用户就不必做任何更改。WebServiceA的1.0版和1.1版将有各自独立的Java类

我想在同一个.war文件中部署这两个版本。(我们可以在.war中只采用一个web服务版本的策略,并在其自己的.war中部署其他版本。这将导致当我们获得多个web服务的多个版本时,要部署的.war数量增加。我更愿意只部署一个.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)
ws、ws.v11和ws.v12下的Java类。将是独立的Java类

你能看到这项公约今后会有什么问题吗

如果有一个为多个版本的web服务代码构建源代码的行之有效的约定,我希望在编写自己的代码之前先了解一下

谢谢


Dean

既然您说希望这些版本都“在同一个源代码主干或分支中”,我想部分答案取决于您使用的源代码管理系统,以及您是否计划修复旧版本中的错误

如果您想要修复旧版本中的bug,您需要能够在不同版本之间向前或向后集成更改。例如,假设您发现版本1.0、1.1和1.2中存在严重的安全问题。你不会想要修复它三次。大多数源代码管理系统都允许您在相关分支之间进行这种集成。一些(比如Perforce,我相信还有git,可能还有其他一些)可以让您集成文件之间的更改,即使是在一个分支中。(事实上,Perforce的“分支”概念只是为了方便记录文件间集成)


因此,您需要考虑是否需要进行这些类型的多版本修复,如果需要,您的sorce控制系统能否处理分支内集成。如果没有,那么您最好为每个版本使用一个单独的分支。

出于好奇:是否有理由希望在一个分支中完成所有工作?两个版本将同时部署,因此它们应该位于同一个分支中。然而,它们基于不同的Java类。