0

複数の開発者がそれぞれ異なるモジュールで作業している大規模なエンタープライズ アプリケーションを (Eclipse を使用して) 開発していますが、各モジュールには他のモジュールへの依存関係があります。現在、共有 SVN を使用しており、各開発者はすべてのコードを同期しています。

現在、私たちのチームとコードが成長するにつれて、知的ソースを保護する必要があるため、各開発者が独自のプライベート SVN を持つことができるソリューションを探していますが、コンパイラは (暗号化されたパスワードを使用して) から読み取ることができる必要があります。他のリモート モジュール。これを達成する方法はありますか?

Mavenの使用を検討していますが、次の質問があります。

  1. パスワードで保護された独自の Maven リポジトリをセットアップできますか?

  2. ローカル ビルド フォルダーを保護するにはどうすればよいですか?パスワードで保護されたローカル ビルドを生成し、コンパイル後にクリーニングして破棄する方法はありますか?

ご協力いただきありがとうございます。

4

1 に答える 1

1

すべてのコードが同じソース コード リポジトリに配置されていない限り、プロジェクトは実際にはプロジェクトではありません。

要件を満たす最善の方法は、プロジェクトを論理的に個別のサブプロジェクトに分割し、各開発者に jar ファイルをコンパイルして共通の Maven リポジトリにデプロイさせることです。このようにして、開発者はソース コードではなく、コンパイルされたバイナリを共有します。

中央の Jenkins インスタンスは、すべてのプロジェクトをビルドするように構成できます (1 台のマシンがすべての Subversion リポジトリへのアクセスを許可されている場合)。

複雑?ベッチャ!あなたが直面する困難な問題のいくつか:

  • モジュール間の SNAPSHOT リビジョンへの依存。これらは、再現が困難な不安定性とビルド/問題につながります (ゴールポストの移動)
  • 事実上、これはもはや単一のプロジェクトではありません。問題を一元的に追跡して割り当てることができなくなるため、最終的には各サブプロジェクトに個別のリリース管理が必要になります。
  • 誰がどの Subversion リポジトリにアクセスできるかを制御することが課題になります。前もって計画を立て、LDAP グループをセットアップしてください。開発者は、最終的に相互に協力するよう求められたときに、ある段階で他のモジュールにアクセスする必要があるためです。

私は何をしますか?成功したすべてのオープンソース プロジェクトのアーキテクチャ リードに従い、中心的なコア プロダクトを管理します。サードパーティがプラグインを介して製品を拡張できるようにする拡張メカニズムを設計します。

レガシー プロジェクトを再設計する余裕はないかもしれませんが、これらの新しいセキュリティ要件を採用するという課題にすでに直面しています... エンタープライズ コンピューティングの喜びを同情します...

于 2012-05-31T22:29:44.060 に答える