Nexusを活用したMavenプライベートリポジトリの構築手順

Nexus Repository Managerのインストール

公式サイトより最新版をダウンロード後、展開ディレクトリのbinフォルダに移動します。Windows環境ではコマンドプロンプトで以下を実行します。

nexus.exe run

起動完了後、ブラウザでhttp://localhost:8081にアクセスし、デフォルトのアカウントadminとパスワードadmin123でログインします。初回ログイン時はパスワード変更が求められます。

リポジトリタイプの設定

Mavenリポジトリには3種類のタイプがあります。

  • ホステッド:自社生成のアーティファクトを格納する内部リポジトリ
  • プロキシ:外部リポジトリ(例:Alibaba Mavenリポジトリ)を参照するリポジトリ
  • グループ:複数リポジトリを統合した論理リポジトリ(ホステッド+プロキシの組み合わせ)

リポジトリの種類と利用方法

リポジトリタイプ 利用目的
ホステッド 自作ライブラリの公開 maven-releases
プロキシ 外部リポジトリの参照 aliyun-maven
グループ 統合リポジトリの作成 maven-group

プロキシリポジトリの追加例

  1. [リポジトリ] > [新規] > [Maven 2プロキシ]を選択
  2. 名称: aliyun-maven
  3. URL: http://maven.aliyun.com/nexus/content/groups/public/
  4. グループリポジトリmaven-groupに追加

Mavenプロジェクトの設定

settings.xmlへの設定

<servers>
    <server>
        <id>release_repo</id>
        <username>repo_admin</username>
        <password>secureP@ss123</password>
    </server>
    <server>
        <id>snap_repo</id>
        <username>repo_admin</username>
        <password>secureP@ss123</password>
    </server>
</servers>

pom.xmlのリポジトリ設定

<repositories>
    <repository>
        <id>internal_maven</id>
        <url>http://localhost:8081/repository/maven-group</url>
        <releases><enabled>true</enabled></releases>
        <snapshots><enabled>true</enabled></snapshots>
    </repository>
</repositories>

アーティファクトのリポジトリへのデプロイ設定

<distributionManagement>
    <repository>
        <id>release_repo</id>
        <url>http://localhost:8081/repository/maven-releases</url>
    </repository>
    <snapshotRepository>
        <id>snap_repo</id>
        <url>http://localhost:8081/repository/maven-snapshots</url>
    </snapshotRepository>
</distributionManagement>

SNAPSHOTとRELEASEの動作差異

  • SNAPSHOT版-SNAPSHOTがバージョンに含まれる(例: 1.2.0-SNAPSHOT

  • デプロイ時は自動的にスナップショットリポジトリに格納

  • 依存関係を指定した場合、最新バージョンを自動取得

  • RELEASE版:バージョンに-SNAPSHOTが含まれない

  • デプロイ時はリリースリポジトリに格納

  • 依存関係指定時はキャッシュされたバージョンを使用

注意点

  • リポジトリの重複デプロイを許可するには、maven-releasesリポジトリの設定でAllow redeployを有効にします
  • パスワードはadmin123ではなく強力なパスワードを使用してください
  • 400エラーはリポジトリの重複デプロイ設定が無効な場合に発生します
  • 401エラーは認証情報が不正な場合に発生します

タグ: nexus Maven repository artifact Snapshot

5月28日 15:38 投稿