49

ローカルマシンにnexusをインストールしました。pomファイルがこのリポジトリを指すようにします。カスタムリポジトリをpom.xmlファイルに追加するにはどうすればよいですか?

4

6 に答える 6

51

Mavenから-設定リファレンス

ダウンロードおよびデプロイメント用のリポジトリーは、POMのrepositoriesおよび要素によって定義されます。distributionManagementただし、ユーザー名やパスワードなどの特定の設定は、pom.xmlと一緒に配布しないでください。このタイプの情報は、settings.xmlのビルドサーバーに存在する必要があります。

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                  http://maven.apache.org/xsd/settings-1.0.0.xsd">
  ...
  <servers>
    <server>
      <id>server001</id>
      <username>my_login</username>
      <password>my_password</password>
      <privateKey>${user.home}/.ssh/id_dsa</privateKey>
      <passphrase>some_passphrase</passphrase>
      <filePermissions>664</filePermissions>
      <directoryPermissions>775</directoryPermissions>
      <configuration></configuration>
    </server>
  </servers>
  ...
</settings>

id:これは、Mavenが接続しようとするリポジトリ/ミラーのid要素と一致するサーバーのIDです(ログインするユーザーのIDではありません)。

ユーザー名、パスワード:これらの要素は、このサーバーへの認証に必要なログインとパスワードを示すペアとして表示されます。

privateKey、passphrase:前の2つの要素と同様に、このペアは秘密鍵(デフォルトは${user.home}/.ssh/id_dsa)へのパスと、必要に応じてパスフレーズを指定します。パスフレーズとパスワードの要素は将来外部化される可能性がありますが、今のところ、settings.xmlファイルでプレーンテキストに設定する必要があります。

filePermissions、directoryPermissions:リポジトリファイルまたはディレクトリが展開時に作成される場合、これらは使用する権限です。それぞれの有効な値は、*nixファイルのアクセス許可に対応する3桁の数字です。664、または775。

注:秘密鍵を使用してサーバーにログインする場合は、必ず要素を省略してください。それ以外の場合、キーは無視されます。

必要なのはid、、usernamepassword

idおよびは、次のようURLに定義する必要があります。pom.xml

<repositories>
    ...
    <repository>
        <id>acme-nexus-releases</id>
        <name>acme nexus</name>
        <url>https://nexus.acme.net/content/repositories/releases</url>
    </repository>
    ...
</repositories>

サーバーのユーザー名とパスワードが必要な場合は、暗号化する必要があります。 Mavenパスワード暗号化

于 2013-09-12T08:39:19.150 に答える
22

まず、Nexusの本を読むことを強くお勧めします。Mavenリポジトリマネージャーを使用する利点について説明します。

Nexusを使用するようにMavenビルドを構成する方法に関するセクションがあります。

これにより、なぜPOMファイルを変更するのか疑問に思います。あなたが本当にやりたいのは、Nexusをリモートリポジトリミラーとして設定することだと思います。これは、Maven設定ファイルで行われます。

以下は、Mavenが( Maven Centralの代わりに)デフォルトのリポジトリとしてNexusを使用することを示しています。

<settings>
  ..
  ..
  <mirrors>
    <mirror>
      <id>nexus</id>
      <url>http://localhost:8081/nexus/content/groups/public</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>

Nexusリポジトリは、Centralから取得したアーティファクトをキャッシュするように構成されているため(ビルドパフォーマンスに適しています)、これは望ましい動作です。

ノート:

  • 「パブリック」リポジトリグループには、Nexusインスタンスによってプロキシされる他のリポジトリ(Maven Centralだけでなく)を含めることができます。すべてのリポジトリ管理を一元化するため、この動作が必要になる可能性があります。組織外の人にとって、ビルドの移植性が低下するだけです。
于 2013-01-15T19:27:24.520 に答える
8

ここでの回答は、Nexusサーバーに複数のユーザーがいて、Jenkinsのような自動ビルド(CI)システムを使用するとともに、ユーザーIDに基づくプロジェクトベースの分離(保護)があるエンタープライズユースケースをサポートしていないようです。さまざまなプロジェクトに必要なさまざまなユーザーIDを満たすためのsettings.xmlファイルを作成することはできません。プロジェクトがプロジェクト固有の汎用ユーザーIDをpom.xmlに格納できない限り、リポジトリを読み取るための匿名アクセスにNexusを開く以外に、これを解決する方法がわかりません。

于 2014-02-13T16:30:48.743 に答える
7

ApacheMavenサイトから

<project>
  ...
  <repositories>
    <repository>
      <id>my-internal-site</id>
      <url>http://myserver/repo</url>
    </repository>
  </repositories>
  ...
</project>

「ダウンロードとデプロイのリポジトリは、POMのリポジトリとdistributionManagement要素によって定義されます。ただし、ユーザー名やパスワードなどの特定の設定は、pom.xmlと一緒に配布しないでください。このタイプの情報は、のビルドサーバーに存在する必要があります。 settings.xml。」-ApacheMavenサイト-設定リファレンス

<servers>
    <server>
        <id>server001</id>
        <username>my_login</username>
        <password>my_password</password>
        <privateKey>${user.home}/.ssh/id_dsa</privateKey>
        <passphrase>some_passphrase</passphrase>
        <filePermissions>664</filePermissions>
        <directoryPermissions>775</directoryPermissions>
        <configuration></configuration>
    </server>
</servers>
于 2013-01-15T08:26:57.833 に答える
7

ファイルが不要な場合、またはファイルを変更できない場合はsettings.xml、プロジェクトのルートに新しいファイルを作成し、mavenを呼び出して、-s引数を指定してパラメーターとして渡すことができます。

$ mvn COMMAND ... -s settings.xml
于 2016-12-20T01:19:09.760 に答える
3

Maven設定リファレンスから、ユーザー名/パスワードをpom.xmlに入れることはできません

ダウンロードおよびデプロイメント用のリポジトリーは、POMのリポジトリーおよびdistributionManagement要素によって定義されます。ただし、ユーザー名やパスワードなどの特定の設定は、pom.xmlと一緒に配布しないでください。このタイプの情報は、settings.xmlのビルドサーバーに存在する必要があります。

最初にpomにリポジトリを追加してから、$ MAVEN_HOME / conf/settings.xmlにユーザー名/パスワードを追加できます。

  <servers>
    <server>
        <id>my-internal-site</id>
        <username>yourUsername</username>
        <password>yourPassword</password>
    </server>
  </servers>
于 2013-01-15T11:39:24.457 に答える