2009-06-14 23 views
10

私は、ベストプラクティスとリポジトリ管理に関する2つの質問があります。Mavenベストプラクティス

私の環境では、私は中央メインリポジトリに出かけるのではなく、すべてを内部のリポジトリに保存したいと思います。私は各ユーザーに、mavenリポジトリからのスナップショットやリリースの使用を無効にするsettings.xmlファイルに情報を入れるか、POMファイルに保存する必要がありますか?

また、ユーザーはすべて同じ企業リポジトリに移動したいと考えています。このリポジトリ情報をpomまたはsettings.xmlに入れる必要がありますか?それがpomにあれば、リポジトリがpomを取得する場所を既に知っている必要があるので、どのようにリポジトリに行くのかを知っていますか?

答えて

6

大きなプロジェクトでは、いくつかのリポジトリを持つことをお勧めします。

  1. 会社は外部サイトの可用性に依存するようになるしないように、会社のプロキシ/キャッシュは、ローカルにdonwloaded jarファイルを格納します。これは通常のリポジトリのようにアクセスされますが、公開リポジトリへのゲートウェイです。

  2. リリースされたライブラリの会社のリポジトリには、内部ライブラリが含まれています。これらは、プロジェクトリポジトリから会社のリポジトリに「プロモート」されるフレームワークで、すべてのプロジェクトに役立つためです。

  3. プロジェクトリポジトリには、プロジェクトで使用される成果物が含まれています。サブプロジェクトの成果物などを含めることができます。プロジェクトのすべての開発者は、ここに何かを公開できるはずです。

あなたが設定した場所は好みです。私はこれらのことをsettings.xmlに入れました。内部リポジトリのアドレスが変更された場合は、プロジェクトを変更する必要があります。

+0

これは、すべて正確である - 私はすべての良い解決策のためのネクサス(http://nexus.sonatype.org/)に探してお勧めします上記。 –

+0

ありがとうございます。私は簡単にApacheのArchivaを使ってきましたが、Nexusも検討しています。私たちはかなり小さいプロジェクトに入っています。早い段階でこれらのことを実現しようとしています。 –

+1

+1 Nexus。セットアップと操作が簡単です。 –

10

ステップ1:LAN内のサーバーにnexusをインストールします。それは優れています - インストールするのは簡単です(実際にはわずか数分!)。私たちは〜50人のエンジニアと多くのCIサーバを終日抱えており、何ヶ月も安定しています。あなたのDNSの "nexus.local"というサーバにインストールしたとしましょう。

ステップ2http://www.sonatype.com/books/nexus-book/reference/maven-sect-single-group.htmlからのsettings.xmlをコピーし、必要に応じてホスト名を修正し、ソースコードのシステムにそれをコミットし、彼らの〜/ .m2/settings.xmlの中にそれをコピーするために、すべての開発者に伝えます。

ステップ3:プロジェクトのpom.xmlを適切に設定します。

<distributionManagement> 
    <snapshotRepository> 
     <id>nexusSS</id> 
     <name>Nexus Snapshot Repository</name> 
     <url>http://nexus.local:8081/nexus/content/repositories/snapshots</url> 
    </snapshotRepository> 
    <repository> 
     <id>nexusRelease</id> 
     <name>Nexus Release Repository</name> 
     <url>http://nexus.local:8081/nexus/content/repositories/releases</url> 
    </repository> 
    </distributionManagement> 

ステップ4:あなたはこのようになります「distributionManagement」セクションを定義し、「親POM」をお勧めします「MVNを展開し、」有効にする - あなたのネクサスのUIに行くhttp://nexus.local:8081/nexusのような(何かを)、ユーザーをクリックし、「展開」をクリックし、パスワードを入力します。その後あなた〜/ .m2/settings.xmlのを編集して、これを追加します。それは「MVNを展開し、」実行して動作

<settings> 
    ... 
    <servers> 
    <server> 
     <id>nexus</id> 
     <username>deployment</username> 
     <password>PASSWORD</password> 
    </server> 
    </servers> 
</settings> 

を確認することを、あなたはネクサスへのプロジェクトの成果物をインストールしている必要があります。

ステップ5:Mavenのためのこの優れたドキュメントを読むhttp://www.sonatype.com/products/maven/documentation/book-defguide

+2

「ステップ4」では、サーバーのIDをステップ3のdistributionManagementのIDのIDと一致させたくありませんか? – Nicholas

関連する問題