5

既存のサービス ベースのアプリケーションのビルド プロセスを調査するよう依頼されました。一部のサービスがサードパーティによって提供されるいくつかのサービスベースのモジュールがあります。ビルド プロセスで使用される wsdls はダウンし、http を介してビルドに取り込まれます。能力を高めるために、maven 3 と axistools-maven-plugin を使用して、wsdl からクラスを生成しています。

これは私が考え始めました。リモート サーバーがダウンしている場合、ビルドは失敗します。wsdl が変更されると、ビルドも失敗する可能性があります。私はこれが欲しいですか?リモート wsdl は service/wsdl 名でバージョン管理されているため、API に大きな変更を加える必要はありませんが、これらはサード パーティであり、この慣習に本当に依存することはできません。

wsdl をローカルにダウンロードして、ソース管理下にあるファイルに対してビルドする方がよいのではないでしょうか? リモートサーバーが利用できなくなる危険性がなく、適切な再現可能なビルドができます。ただし、これはあまり機敏ではないようです。このアプローチを採用した場合、リモート wsdl の変更をどのように認識できますか?

wsdls からのビルドのベスト プラクティスについて疑問に思ったのは、私が初めてではないと思います。リモート wsdls から生成されたサービスから再現可能なビルドを生成するための最良の方法と見なされるメカニズムを強調できますか?

4

3 に答える 3

4

高速で信頼性の高いビルドが必要な場合の黄金律は、制御できないものに依存しないことです。

あなたの場合、元のソースが利用できないか変更された場合にビルドが失敗しないように、WSDL をローカルにキャッシュします。ただし、WSDL が変更される可能性があることを懸念している場合は、毎日実行され、キャッシュされたコピーと元のコピーを比較し、それらが異なる場合は失敗する別のビルド ジョブも作成します。これにより、再現可能なビルドと、WSDL が変更された場合の早期警告という、両方の長所が得られます。

WSDL をどこにどのようにキャッシュするかは完全にあなた次第ですが、バージョン管理に固執することは迅速かつ簡単なオプションです。

于 2012-12-15T20:02:17.520 に答える
0

WSDL ファイルをダウンロードして、プロジェクトの残りの部分と一緒にソース管理に入れます。

主な利点は、再現可能なビルドが保証されることです。ビルドごとにダウンロードすると、再現できません。たとえば、ビルドして開発環境またはテスト環境にデプロイし、アプリケーションをサインオフしてから、ビルドしてライブにデプロイするとします。WSDL が変更された場合、ライブ ビルドはテストでサインオフされたものとは異なり、異なる動作をする可能性があります。ネットワーク通信に問題がある場合、まったくビルドできないことさえあります。

これは、WSDL の最新バージョンが自動的に取得されないことを意味しますが、これは良いことです。

于 2012-12-14T11:11:33.157 に答える
0

Web サービスに固定の wsdl があることがわかっている場合は、そのローカル コピーを使用することをお勧めします。

wsdl 自体が変更される可能性がある場合は、ビルドに常に URL を使用することをお勧めします。

ネットワークのダウンが問題になる場合は、(maven で) 2 つの個別のビルド プロファイルを作成します。1 つはローカル用、もう 1 つは URL 用です。

于 2012-12-14T12:18:12.900 に答える