11

Mavenのベストプラクティスとリポジトリの管理についていくつか質問があります。

私の環境では、中央のMavenリポジトリに移動するのではなく、すべてを内部リポジトリに格納します。スナップショットまたはMavenリポジトリからのリリースの使用を無効にするsettings.xmlファイルに情報を入力するように各ユーザーに要求する必要がありますか、それともPOMファイルに含める必要がありますか?

また、すべてのユーザーに同じ企業リポジトリにアクセスしてもらいたいと思います。このリポジトリ情報をpomまたはsettings.xmlに配置する必要がありますか?それがpomにある場合、リポジトリがpomを取得する場所をすでに知っている必要があるため、mavenはどのようにしてリポジトリに移動することを知るのでしょうか?

4

2 に答える 2

11

ステップ 1 : LAN 内のサーバーに nexus をインストールします。それは素晴らしいです -- インストールが簡単で (実際には、ほんの数分です!)、頑丈です。約 50 人のエンジニアと多数の CI サーバーが 1 日中稼働しており、何ヶ月もの間安定しています。DNS の「nexus.local」というサーバーにインストールしたとします。

ステップ 2 : http://www.sonatype.com/books/nexus-book/reference/maven-sect-single-group.htmlから settings.xml をコピーし、必要に応じてホスト名を修正し、ソース コード システムにコミットします。 、およびすべての開発者に ~/.m2/settings.xml にコピーするように指示します。

ステップ 3 : プロジェクトの pom.xml を適切に設定します。次のような「distributionManagement」セクションを定義する「親 POM」が必要になります。

  <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 : 「mvn deploy」を有効にします -- nexus UI ( http://nexus.local:8081/nexusなど) に移動し、ユーザーをクリックし、「deployment」をクリックして、パスワードを入力します。次に ~/.m2/settings.xml を編集して、これを追加します。

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

「mvn deploy」を実行して動作することを確認すると、プロジェクトの成果物が nexus にインストールされているはずです。

ステップ 5 : Maven に関する優れたドキュメントをお読みください: http://www.sonatype.com/products/maven/documentation/book-defguide

于 2009-12-11T22:27:05.273 に答える
6

大規模なプロジェクトでは、複数のリポジトリを用意するのが最適です。

  1. 会社のプロキシ/キャッシュは、ダウンロードされたjarをローカルに保存するため、会社は外部サイトの可用性に依存することはありません。通常のリポジトリと同じようにアクセスされますが、パブリックリポジトリへのゲートウェイです。

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

  3. プロジェクトリポジトリには、プロジェクトで使用されるアーティファクトが含まれています。サブプロジェクトの成果物などを含めることができます。プロジェクト内のすべての開発者は、ここで何かを公開できる必要があります。

設定をどこに置くかは好みの問題です。私はこれらのものをsettings.xmlに入れました。内部リポジトリのアドレスが変更された場合は、プロジェクトを変更する必要があるためです。

于 2009-06-14T23:18:33.383 に答える