3

同じソースコードトランクまたはブランチに同じ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サービスの1つのバージョンのみのポリシーを採用し、独自の.warで他のバージョンをデプロイできます。これにより、複数のWebサービスの複数のバージョンを取得するときにデプロイする.warの数が増加します。 .warを1つだけデプロイしたいと思います。)

さまざまなバージョンに個別のパッケージ構造を使用する必要があると思います。

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サービスコードの複数のバージョンのソースコードを構造化するための実証済みの規則がある場合は、自分で作成する前にそれについて聞きたいと思います。

ありがとう。

ディーン

4

1 に答える 1

0

これらのバージョンをすべて「同じソース コード トランクまたはブランチ」に配置したいとおっしゃっているので、答えの一部は、使用しているソース管理システムと、古いバージョンのバグを修正する予定があるかどうかに依存すると思います。 .

古いバージョンのバグを修正したい場合は、異なるバージョン間で変更を前後に統合する機能が必要になります。たとえば、バージョン 1.0、1.1、および 1.2 に存在する重大なセキュリティ問題を発見したとします。あなたはそれを3回修正したくないでしょう。ほとんどのソース管理システムでは、関連するブランチ間でこの種の統合を行うことができます。いくつか (Perforce のように、そして私は git も信じています。おそらく他のいくつか) は、ブランチ内であってもファイル間の変更を統合できるようにします。(実際、Perforce の「ブランチ」の概念は、ファイル間の統合を記録するための便利なものです)

したがって、この種の複数バージョンの修正を行う必要があるかどうかを検討する必要があります。必要な場合、ソース制御システムはブランチ内統合を処理できます。そうでない場合は、バージョンごとに個別のブランチを使用する方がよい場合があります。

于 2009-10-06T03:45:08.457 に答える