メインコンテンツまでスキップ

Dependency Management

Cloud ZCPSonatype Nexus を統合リポジトリ管理ツールとして利用し、アプリケーションの依存関係を管理します。Nexus は、Java ライブラリ (JAR)、Node モジュール、その他のアーティファクトタイプなど、アプリケーションに必要なソフトウェアバイナリの管理において重要な役割を果たします。

その主な機能は次のとおりです:

  • Proxying Public Repositories: Nexus は、Maven Central、npmjs.org などの公開リポジトリのローカルプロキシ (またはミラー) として機能できます。これにより、特に閉じたネットワーク内の開発およびビルド環境が、ダウンロードしたアーティファクトをキャッシュすることで、外部依存関係に信頼性高く効率的にアクセスできるようになります。
  • Hosting Internal Libraries: Nexus は、組織が独自の内部ライブラリや共有コンポーネントをアップロードおよび管理できる hosted リポジトリを提供します 1 。
  • Grouping Repositories: リポジトリをグループ化することができ、ビルドツールが複数のソースを横断して検索できるようになります (例:最初に内部ライブラリのためにホストされたリポジトリを確認し、その後外部のためにプロキシリポジトリを確認します)。

Nexus へのアクセス

ZCP コンソールのプロジェクトメニューを通じて Nexus インターフェースにアクセスできます: Dev Tools > Nexus

標準プロジェクトユーザーは通常、Nexus UI に直接ログインするためのアカウントを持っていません。リポジトリの表示は Browse メニューを通じて可能です。ホストされたリポジトリの作成やカスタムライブラリのアップロードなどの操作は、通常、プラットフォーム管理者の支援が必要です。

Nexus をブラウズすると、さまざまなリポジトリタイプに出会います:

  • proxy: 外部の公開リポジトリをミラーします。ダウンロードしたアーティファクトをキャッシュします。
  • hosted: 内部で開発またはアップロードされたアーティファクトを保存します。
  • group: 複数のプロキシおよび/またはホストされたリポジトリを単一のアクセスポイントに統合します。ライブラリはグループ内で定義された順序で検索されます。

Nexus を Maven ミラーとして利用

Maven を使用する Java プロジェクトでは、特に直接インターネットアクセスがない環境で、Nexus をミラーリポジトリとして構成できます。

  • Configuration File: Maven の settings.xml ファイルを修正します (通常は ~/.m2/settings.xml または Maven インストール内の /conf/settings.xml にあります)。
  • Mirror Settings: <mirrors> セクション内に <mirror> エントリを追加します:
<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 https://maven.apache.org/xsd/settings-1.0.0.xsd">
...
<mirrors>
<mirror>
<id>modernizationplatform</id> <name>Modernization Platform Nexus</name> <url>NEXUS_REPOSITORY_URL</url> <mirrorOf>*</mirrorOf> </mirror>
</mirrors>
...
</settings>
  • Finding the URL: Nexus UI (Browse セクション) で、目的のリポジトリ (通常は公開リポジトリのプロキシと内部ホストリポジトリを含む group タイプのリポジトリ) を見つけ、Copy URL ボタンを使用して正しい NEXUS_REPOSITORY_URL を取得します。
  • mirrorOf Setting:
    • * を使用すると、Maven は all リポジトリリクエストをこの Nexus ミラーを通じてルーティングします。
    • あるいは、特定のリポジトリ ID (例: central) を指定して、pom.xml で定義された特定のリポジトリのみをミラーすることもできます。
  • IDE Integration: 開発環境 (Eclipse、IntelliJ、VSCode など) がこの settings.xml ファイルを使用するように構成されていることを確認します。

Nexus を Gradle プロキシとして利用

Gradle を使用するプロジェクトでは、プロジェクトの build.gradle ファイル内で Nexus アクセスを構成します。

  • Configuration File: プロジェクトの build.gradle (または build.gradle.kts) ファイルを修正します。
  • Repository Settings: repositories { ... } ブロックを調整します:
repositories {
// プロキシを強制する場合は mavenCentral() または jcenter() のコメントを外すか削除します
// mavenCentral()

maven {
url "NEXUS_REPOSITORY_URL" // Nexus *group* リポジトリの URL
}
}
  • Finding the URL: Maven と同様に、Nexus UI で Copy URL ボタンを使用して適切な group リポジトリの URL を見つけます。 mavenCentral() を Nexus の maven ブロックに置き換えることで、Gradle が Nexus を通じて依存関係を解決するように指示します。

カスタムライブラリの管理(Hosted Repositories)

Nexus の hosted リポジトリは、公開リポジトリに存在しないアーティファクト、例えば内部で開発されたライブラリや特定のバージョンのサードパーティライブラリを保存するために設計されています。

ビルド (settings.xml または build.gradle) で構成された group リポジトリにホストされたリポジトリが含まれている場合、ビルドツールはこれらの内部ライブラリにアクセスできます。

ホストされたリポジトリにアーティファクトをアップロードするには、通常、Nexus 内での管理者権限が必要です。プロジェクトチームは通常、この目的のためにプラットフォーム管理者と調整する必要があります。