Dependency Management
Cloud ZCP は Sonatype 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 内での管理者権限が必要です。プロジェクトチームは通常、この目的のためにプラットフォーム管理者と調整する必要があります。